该错误是在多线程里调用UI控件时出现。
原因是一般的winform程序的Program应用程序的主入口点函数static void Main()会加[STAThread]。而我们多线程调用一些控件的时候未加该限定。加上如下第二行话即可解决:
Thread th= new Thread(new ParameterizedThreadStart(CreateSocket));
th.ApartmentState = ApartmentState.STA; //解决dragdrop注册失败的报错提示。
th.Start();
分析下我的场景:原本主线程调用了某自定义控件,而在多线程里面运用反射再一次调用该自定义控件时,提示dragdrop注册失败了。
网友评论