使用backgroundworker在主线程上创建WinForm

时间:2011-06-11 10:04:07

标签: c# multithreading forms backgroundworker

我有一个后台工作者,我正在尝试创建一个表单实例,但我不希望后台工作线程拥有该对象,但是喜欢拥有它的主线程。我从哪里开始呢?

1 个答案:

答案 0 :(得分:1)

您可以使用Invoke和BeginInvoke函数来获取在GUI线程上执行的代码。你可以让你的另一个线程引发一个事件,然后在你的主窗体中处理它,然后你的主窗体可以调用该回调到它自己的线程(使用InvokeRequired然后调用)来启动新窗体。

如果您正在使用后台工作程序,则可以使用OnProgressChanged方法向您的应用程序发送信号以执行某些操作。

另外,请看一下这个excellent book