我有一个后台工作人员,我试图让它创建一个窗体的实例,但我不希望后台工作线程自己该对象,但希望主线程拥有它。我从哪里开始呢?使用backgroundworker在主线程创建WinForm
0
A
回答
1
您可以使用Invoke和BeginInvoke函数来获取要在GUI线程上执行的代码。你可以让你的另一个线程提出一个事件,然后在你的主窗体中处理它,然后你的主窗体可以调用这个回调到它自己的线程上(使用InvokeRequired然后Invoke)来启动新窗体。
如果您使用的是后台工作人员,您可以将OnProgressChanged方法用于通知您的应用程序执行某些操作。
而且,看看这个excellent book
+0
谢谢,我会看到Invoke如何去让你知道。 – R4D4 2011-06-11 10:30:29
相关问题
- 1. WinForm多线程。是否使用backgroundWorker?
- 2. 在BackgroundWorker线程上创建FlowDocument
- 3. 使用队列创建BackgroundWorker
- 4. C#winform backgroundworker
- 5. 在c#中使用backgroundworker时主线程没有响应
- 6. 使用BackgroundWorker在C#中并发线程
- 7. 使用线程(使用,创建等)让一个线程运行在主
- 8. 从BackgroundWorker异常转发到主线程
- 9. WPF从主线程停止BackgroundWorker
- 10. BackgroundWorker和主线程之间的沟通
- 11. 线程与Backgroundworker
- 12. C#Winform ProgressBar和BackgroundWorker
- 13. 如何从backgroundWorker线程创建通用控件?
- 14. 在backgroundworker的后台线程中创建webbrowser控件
- 15. 在主线程中创建表单?
- 16. 主线程等待多个backgroundworker线程来完成
- 17. 如何调回到主线程从一个BackgroundWorker线程
- 18. Log4Net在主线程中工作,但不在创建线程中
- 19. 使用BackgroundWorker打开不同的线程
- 20. 使用NDK创建线程?
- 21. vb.Net:在BackgroundWorker中创建UI
- 22. 从BackgroundWorker使用WebBrowser创建对话框
- 23. 使用backgroundWorker创建并显示progressBar - VS2013
- 24. 我可以在主线程(UI线程)之外创建UI吗?
- 25. 在另一个线程创建窗口(不是主线程)
- 26. 在后台线程上创建视图,在主线程中添加主视图
- 27. 在多线程应用程序中使用backgroundworker
- 28. 如何在C#中使用BackgroundWorker类使用多线程?
- 29. 在主线程处于活动状态时BackgroundWorker线程不会触发
- 30. Java如何创建主线程
这看起来像一个非常奇怪的(=错)设计。为什么一个Bgw创建一个表单? – 2011-06-11 10:06:26
当我的应用程序加载时,我显示一个特定的表单,创建一个互斥体并启动一个后台worker上的TCP侦听器。如果第二个实例由于无法获得相同的互斥量而被加载,它会通过TCP监听器告诉第一个实例该应用程序试图再次加载。然后,我想让后台工作者(不再锁定)告诉主线程显示某种形式。 – R4D4 2011-06-11 10:25:54