2017-01-04 2 views
1

ich eine C# Windows Form-Anwendung verweisen (Program_Ref), versuchen, ein neues Programm (Program_A) mit ähnlichen Funktionen zu schreiben.Anwendung steckt geblieben, wenn HidP_GetValueCaps() verwendet zweites Mal

Einer der Funktionsaufrufe 'Gerät suchen', was bedeutet, Hersteller-ID und Produkt-ID zu verwenden, um ein bestimmtes USB-Gerät zu finden.

Beide Anwendungen funktionieren beim Start gut, aber wenn ich versuche, die Funktion 'Gerät suchen' erneut zu verwenden, bleibt meine gesamte Anwendung (include UI) hängen.

Im Gegenteil, die Beispielanwendung funktioniert immer noch gut.

Ich bezweifle, dass das Problem von [STAThread] ist. Hier ist der Unterschied zwischen zwei Programmen:

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()); } 
} 

Und folgende Codes ist meins:

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 
} 

Ich kann nicht den Unterschied von ihnen herauszufinden, und wie das Problem zu lösen?

Danke.

Antwort

Verwandte Themen