(爲理由 - 我從來沒有使用線程的工作所以下面的描述僅僅是一個想法,我希望你能罵)線程,隊列和工作流程
的任務概述:
- 有一些名單對象
- 我們需要檢查對象是否以某種方式更改
- 如果更改 - 應用一些邏輯(例如 - 顯示通知)。
這是我認爲它應該實現:
我們創造定時器,觸發每分鐘,這遍歷對象列表,找到需要進行檢查的對象。之後,我們將該對象(或特定的 - 包含對象和任務描述的某個任務對象,以檢查它是否已更新)添加到隊列中。
工作者(線程池中的某個線程)等待,直到將某些內容添加到隊列中,並在發生之後 - 它接受任務並對其進行處理:檢查對象是否已更改。如果是這樣 - 它增加了另一個任務,通知一個。現在,如果有必要,處理通知任務的另一名工作人員將處理此任務。
那麼,這是完全錯誤的想法?這裏可以改進或改變什麼?
UPD:根據第一個回答:對象依賴於某些repote資源,而「change」意味着某些遠程數據發生了變化(或以某種特定方式更改)。所以這不能用INotifyPropertyChanged
來解決。
有 - 因爲「檢查」操作可能是「長」,因爲對象與某些遠程第三方資源有關。 – zerkms 2010-08-27 06:03:47
「,也沒有任何要求並行處理它們,所以在工作線程中對它們進行簡單循環」 - 在這種情況下,所有工作時間和工作要做的邏輯 - 在同一個地方。有一個問題,我描述了當它們完全被隊列分隔時的場景:一部分是做出更新決定,另一部分是做出決定處理,並在它們之間排隊。 – zerkms 2010-08-27 06:07:40
我會說,這個答案或多或少是正確的 - 在對象上循環播放,觸發一個Task來輪詢每個對象,並向UI線程報告。這樣你就不必擔心管理輪詢線程等問題了。 – 2010-08-27 06:16:44