C# 第二次使用HidP_GetValueCaps()时,应用程序被卡住
我引用了一个C#windows窗体应用程序(Program_Ref),尝试编写一个具有类似功能的新程序(Program_a) 其中一个函数调用“查找设备”,这意味着使用供应商id和产品id查找特定的usb设备 启动时,这两个应用程序都可以正常工作,但当我再次尝试使用“查找设备”功能时,我的整个应用程序(包括UI)都会卡住 相反,示例应用程序仍然可以正常工作 我怀疑问题是否来自[STAThread]。 以下是两个程序之间的区别: Ref.csC# 第二次使用HidP_GetValueCaps()时,应用程序被卡住,c#,forms,winforms,usb,hid,C#,Forms,Winforms,Usb,Hid,我引用了一个C#windows窗体应用程序(Program_Ref),尝试编写一个具有类似功能的新程序(Program_a) 其中一个函数调用“查找设备”,这意味着使用供应商id和产品id查找特定的usb设备 启动时,这两个应用程序都可以正常工作,但当我再次尝试使用“查找设备”功能时,我的整个应用程序(包括UI)都会卡住 相反,示例应用程序仍然可以正常工作 我怀疑问题是否来自[STAThread]。 以下是两个程序之间的区别: Ref.cs public class Ref { intern
public class Ref
{
internal static FrmMain FrmMy;
public static void Main()
{
FrmMy = new FrmMain();
Application.Run(FrmMy);
}
}
internal class FrmMain : Form
{
// Other codes...
[STAThread]
internal static void Main() { Application.Run(new FrmMain()); }
}
public class A
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
public partial class Form1 : Form
{
// Other codes...
// There's no entry point
}
FrmMain.cs
public class Ref
{
internal static FrmMain FrmMy;
public static void Main()
{
FrmMy = new FrmMain();
Application.Run(FrmMy);
}
}
internal class FrmMain : Form
{
// Other codes...
[STAThread]
internal static void Main() { Application.Run(new FrmMain()); }
}
public class A
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
public partial class Form1 : Form
{
// Other codes...
// There's no entry point
}
以下代码是我的:
A.cs
public class Ref
{
internal static FrmMain FrmMy;
public static void Main()
{
FrmMy = new FrmMain();
Application.Run(FrmMy);
}
}
internal class FrmMain : Form
{
// Other codes...
[STAThread]
internal static void Main() { Application.Run(new FrmMain()); }
}
public class A
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
public partial class Form1 : Form
{
// Other codes...
// There's no entry point
}
Form1.cs
public class Ref
{
internal static FrmMain FrmMy;
public static void Main()
{
FrmMy = new FrmMain();
Application.Run(FrmMy);
}
}
internal class FrmMain : Form
{
// Other codes...
[STAThread]
internal static void Main() { Application.Run(new FrmMain()); }
}
public class A
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
public partial class Form1 : Form
{
// Other codes...
// There's no entry point
}
我想不出它们之间的区别,以及如何解决这个问题
谢谢。幸运的是,我找到了一个解决问题的方法,与您分享 以下是我找到的解决方案:
但是我的程序有一点不同:
我取消了“首选32位”选项的选择,应用程序可以正常工作。
希望该解决方案能帮助他人,谢谢。幸运的是,我找到了一个解决方案,可以解决我的问题,并与您分享 以下是我找到的解决方案:
但是我的程序有一点不同:
我取消了“首选32位”选项的选择,应用程序可以正常工作。 希望解决方案能帮助到别人,谢谢