为什么调有invoke方法就可以显示窗体而不消失?急急急急!! 我在主线程中新建一个线程,并在该线各中创建了一个窗体,可是,运行后,这个新的窗体却闪一下就消失了,这是怎么回事?而网上有人说用invoke方法,才发现调用该方法创建出来的窗体不会消失,这是什么原因呀?请大家最好解释的通俗点,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是这个原因吗?可是那为什么用invoke delegate void FormHandler(string rec);// private void newform2(string rec) { if (!this.InvokeRequired) { Form2 fb = new Form2(); fb.listBox1.Items.Add(rec); fb.Show(); } else { FormHandler fHandler = new FormHandler(this.newform2); this.Invoke(fHandler,new object[]{rec}); //启动delegate } }却可以使用呢?我是在一个新的线程中调用了这个newform2,可是运行完这些话,窗体并没消失 使用了Control.Invoke以后,方法是在创建这个控件的线程上运行的,因此,新创建的窗体也会在主窗体的线程上,自然就不会消失了。 invoke 通知创建该控件的线程 要调用委托拉~ 这样说吧,A是你的线程,B是你的方法,当你用A创建窗体后,窗体是隶属线程A的,当A运行完毕后,垃圾回收机制会回收A,窗体作为子项也会被回收了.invoke是委托别的方法(B)去完成窗体建立,也就是窗体是隶属于B的,当A被回收了,对B没有任何影响.当然,如果是把A挂起,不让它结束,窗体还是存在的. IEnumerable的问题 预览功能实现 如何让一个listbox返回一个包含所有对象的list? 求助?"0000-0000-0000-3222"去掉这串字符串中所有"-"最简单的广方法 水晶报表问题请高手指教 用C#实现HTTP协议,返回值总是Bad Request,大家帮忙看看 有没有懂日语的.net的高级程序员? C#学习计划? 刚写完得到字符串(包括汉字和字母)的拼音代码和五笔代码(首笔)。共享一下,包括汉字库。 动态设置背景颜色BackColor,IE可以显示,谷歌、遨游等无法显示 c#做聊天工具,只能在局域网内发送数据 C#中项目之间的全局变量?
delegate void FormHandler(string rec);//
private void newform2(string rec)
{
if (!this.InvokeRequired)
{
Form2 fb = new Form2();
fb.listBox1.Items.Add(rec);
fb.Show();
} else
{
FormHandler fHandler = new FormHandler(this.newform2);
this.Invoke(fHandler,new object[]{rec}); //启动delegate
}
}
却可以使用呢?
我是在一个新的线程中调用了这个newform2,可是运行完这些话,窗体并没消失
invoke是委托别的方法(B)去完成窗体建立,也就是窗体是隶属于B的,当A被回收了,对B没有任何影响.
当然,如果是把A挂起,不让它结束,窗体还是存在的.