2017-01-04 1 views
1

I référence Windows C# application forme (Program_Ref), essayez d'écrire un nouveau programme (Program_A) avec des fonctions similaires.application est resté coincé lors de l'utilisation HidP_GetValueCaps() deuxième fois

L'un des appels de fonction 'Find Device', qui consiste à utiliser l'identifiant du fournisseur et l'identifiant du produit pour trouver un périphérique usb spécifique.

Les deux applications fonctionnent correctement lors du démarrage, mais lorsque j'essaie d'utiliser à nouveau la fonction "Rechercher un périphérique", toute l'application (y compris l'interface utilisateur) reste bloquée. Au contraire, l'exemple d'application fonctionne toujours correctement. Je doute que le problème est de [STAThread]. est ici la différence entre deux programmes:

Ref.cs

public class Ref 
{ 
    internal static FrmMain FrmMy; 

    public static void Main() 
    { 
    FrmMy = new FrmMain(); 
    Application.Run(FrmMy); 
    } 
} 

FrmMain.cs

internal class FrmMain : Form 
{ 
    // Other codes... 

    [STAThread] 
    internal static void Main() { Application.Run(new FrmMain()); } 
} 

et codes suivants est à moi:

A.cs

public class A 
{ 
    [STAThread] 
    static void Main() 
    { 
     Application.EnableVisualStyles(); 
     Application.SetCompatibleTextRenderingDefault(false); 
     Application.Run(new Form1()); 
    } 
} 

Form1.cs

public partial class Form1 : Form 
{ 
    // Other codes... 
    // There's no entry point 
} 

Je ne peux pas comprendre la différence d'entre eux, et comment résoudre le problème?

Merci.

Répondre