C#线程如何打开新窗口

  C#线程中要打开新窗口,需要使用delegate,而不是能在这个线程中直接实例化新窗口,然后调用show方法,要不会导致程序假死,无法响应。

  示例代码如下

//工作线程的代码将直接调用FOrm下定义的FormShow方法

ListenerThread()
{

//这是一个自由线程。不能在这里直接调用一个窗体

FormShow();//OK

}

delegate void FormHandler(DataSet ds);//声明一个委托

//定义一个方法此方法用来显示一个窗体
private void FormShow(DataSet ds)
{
if(!this.InvokeRequired)//如果当前线程不是主UI线程,返回true,否则,返回false.
{
frmBills fb=new frmBills();
fb.Show();
fb.Display(ds);
}

else

{
FormHandler fHandler=new FormHandler(this.FormShow);//创建一个新instance指向FormShow.
this.Invoke(fHandler,newobject[]{ds});//启动delegate
}

 

加支付宝好友偷能量挖...


原创文章,转载请注明出处:C#线程如何打开新窗口

评论(0)Web开发网
阅读(149)喜欢(0)Asp.Net/C#/WCF