Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 第二次使用HidP_GetValueCaps()时,应用程序被卡住_C#_Forms_Winforms_Usb_Hid - Fatal编程技术网

C# 第二次使用HidP_GetValueCaps()时,应用程序被卡住

C# 第二次使用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

我引用了一个C#windows窗体应用程序(Program_Ref),尝试编写一个具有类似功能的新程序(Program_a

其中一个函数调用“查找设备”,这意味着使用供应商id和产品id查找特定的usb设备

启动时,这两个应用程序都可以正常工作,但当我再次尝试使用“查找设备”功能时,我的整个应用程序(包括UI)都会卡住

相反,示例应用程序仍然可以正常工作

我怀疑问题是否来自[STAThread]。 以下是两个程序之间的区别:

Ref.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
}
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位”选项的选择,应用程序可以正常工作。 希望解决方案能帮助到别人,谢谢