我正在嘗試編寫多線程代碼並面臨一些同步問題。我知道這裏有很多帖子,但我找不到合適的東西。同步線程 - 沒有UI
我有一個System.Timers.Timer
每30秒過去它會去分貝,並檢查是否有任何新的工作。如果他找到一個,他會在當前線程上執行該任務(定時器會爲每個已經過的時間打開新線程)。在作業運行時,我需要通知主線程(計時器的位置)關於進度。
注:
- 我沒有UI,所以我不能做
beginInvoke
(或使用後臺線程),因爲我通常的WinForms做。 - 我想在我的主課上實施
ISynchronizeInvoke
,但看起來有點矯枉過正(也許我在這裏錯了)。 - 我在我的工作類中有一個事件,並且主類註冊了它,每當我需要時我都會調用事件,但是我擔心它可能會導致阻塞。
- 每項工作可能需要長達20分鐘。
- 我最多可以同時運行20個作業。
我的問題是:
什麼是通知有關我的工作線程的任何進展我的主線程的正確方法?
感謝您的任何幫助。
不能通知線程。你可以通知一個對象。更好地描述這個部分,你可能會得到更好的答案。 – 2010-03-17 16:55:35