C#提示DragDrop注册失败

2024-02-22  本文已影响0人  堆石成山

该错误是在多线程里调用UI控件时出现。
原因是一般的winform程序的Program应用程序的主入口点函数static void Main()会加[STAThread]。而我们多线程调用一些控件的时候未加该限定。加上如下第二行话即可解决:

  Thread th= new Thread(new ParameterizedThreadStart(CreateSocket));
  th.ApartmentState = ApartmentState.STA; //解决dragdrop注册失败的报错提示。
  th.Start();

分析下我的场景:原本主线程调用了某自定义控件,而在多线程里面运用反射再一次调用该自定义控件时,提示dragdrop注册失败了。

上一篇下一篇

猜你喜欢

热点阅读