读书人

InvokeRequired难题解决办法

发布时间: 2012-05-30 20:20:04 作者: rapoo

InvokeRequired难题
如果想在工作线程(不是UI线程)中创造一个窗体,避免线程安全,一般会

C# code
if(this.form2.InvokeRequired)   {   MethodInvoker mi = new MethodInvoker(form2Invoke);               this.webBrowser.BeginInvoke(mi);   }   else{form2Invoke();}void form2Invoke(){this.form2=new Form();form2.ShowDialog();}



但是如果是这个this.form2是待创建呢?现在还是NULL怎么办?
一般可以this.InvokeRequired代替this.form2.InvokeRequired,然后再创建这个form2;
可是如果this不是主界面程序,而是一个类库,那又如何处理?

[解决办法]
如果是用户控件,那么判断写到自己控件代码内部。

如果不是,最好不要在UI层以外调用涉及到UI的东西。

读书人网 >C#

热点推荐