我是C#和多線程的新手,所以我很抱歉,如果這是一個重複的問題,但作爲一個新手它看起來我的問題與我讀過的其他人略有不同。C#多線程 - 更新與背景事件的GUI
我的GUI在一個(主)線程中運行。它調用一個後臺任務(在一個dll中 - 我也在寫),它運行在一個單獨的線程中。 dll對GUI不瞭解(即不能引用GUI類)。
現在,假設我想根據dll線程的狀態更新GUI上的進度條 - >我正在做的是在dll中創建一個事件,每X%會觸發並且GUI將會訂閱此事件。當事件被觸發時,GUI將更新進度條。
我的問題:
- 是創建活動的最佳方式(銘記DLL不能引用GUI)的方法?
- 如何確保我的上述方法是「事件安全」?我是否應該在事件中通過進度百分比以保證線程安全或者是否還有更多內容?
- 更新GUI時是否需要使用Invoke?我看到一篇文章提示我做了,但我不明白爲什麼自從GUI線程完成了更新吧!
希望你能澄清我的這個!
謝謝
「安全事件」是什麼意思? – 2010-10-26 16:55:16
請在此處查看「BackgroundWorker」類的註釋:http://stackoverflow.com/questions/1506838/backgroundworker-vs-background-thread/1507337#1507337 – 2010-10-26 18:24:10
我只想說感謝所有答覆。他們都幫我回答了我的問題。很高興看到這樣的幫助! – SimpleOne 2010-10-26 19:34:03