【发布时间】:2012-08-13 07:01:24
【问题描述】:
如果我从另一个线程对 WinForms 对象调用 form.show(),表单将引发异常。我可以在哪里向主应用程序线程添加一个新的可见表单?否则,如何在不停止当前正在执行的线程的情况下打开表单?
这是我的示例代码。我正在尝试启动一个线程,然后在该线程中执行一些工作。随着工作的进行,我会展示表格。
public void Main()
{
new Thread(new ThreadStart(showForm)).Start();
// Rest of main thread goes here...
}
public void showForm()
{
// Do some work here.
myForm form = new myForm();
form.Text = "my text";
form.Show();
// Do some more work here
}
【问题讨论】:
-
"form will not show at real." - 我不知道那是什么意思。您是在问如何显示一个同时不阻塞的“模态”对话框?
-
我想出示表格。我不知道怎么做。我的意思是上面的代码将显示表单,但会显示一段时间,因为线程将退出并带有它的表单。如果我显示模态对话框,线程将停止并显示表单。但是它下面的代码将在关闭对话框后完成,这就是我不想要的。
标签: c# winforms multithreading .net-3.5