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#线程如何打开新窗口