我有一個後臺工作人員,我試圖讓它創建一個窗體的實例,但我不希望後臺工作線程自己該對象,但希望主線程擁有它。我從哪裏開始呢?使用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