读书人

C# 线程 显示 form,form一闪就过去了

发布时间: 2012-07-29 15:26:14 作者: rapoo

C# 线程 显示 form,form一闪就过去了,怎么办
ThreadStart ts = new ThreadStart(ShowForm);
Thread td = new Thread(ts);
td.IsBackground = true;
td.Start();



private void ShowForm()
{
Form frm = new Form ();
frm.Show();
}


请教高手

[解决办法]
因为ShowForm方法返回后,线程就结束了,线程结束了,它打开的任何窗体都会被关闭,所以有界面的线程都需要一个消息循环,
[解决办法]
ShowForm 方法修改一下

C# code
private void ShowForm(){    Form frm = new Form();    this.Invoke((MethodInvoker)(() => frm.Show()));}
[解决办法]
楼主可以试试这样:

private void ShowForm()
{
Form frm = new Form ();
Application.Run(frm);
}
[解决办法]
探讨
引用:
楼主可以试试这样:

private void ShowForm()
{
Form frm = new Form ();
Application.Run(frm);
}


靠,这方法好啊!!! 虽然使用 MethodInvoker,再加个委托,可以把form 显示出来

但是 主 form会出现 不响应鼠标事件,死那里;直到form中的load代码……

[解决办法]
frm.Show();改为 frm.ShowDialog();
[解决办法]
C# code
using System.Threading.Tasks;Task.Factory.StartNew(() => { Form2 f = new Form2(); this.Invoke((MethodInvoker)(() => f.Show())); }); 

读书人网 >C#

热点推荐