日期:2014-05-18  浏览次数:20984 次

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的东西。