[英]Monitoring Tasks
所以問題是我有一個ThreadManager
類,該類使用隊列來保存Task
對象。 ThreadManager
可以通過調用Task
的Start()
方法來啟動Task
,該方法將從中生成一個線程來運行某種算法(實際的“任務”)。 現在,我要實現的是讓ThreadManager
監視任務線程的狀態(從Task
對象的Start()
方法生成)。
為此,我想我需要創建一個線程在ThreadManager
進行監視,並且我需要一種方法讓任務線程觸發事件以通知監視線程我已完成或遇到一些錯誤,因此監視器可以相應地處理這些事件。
大師,請告訴我我的想法是否適用? 如果是的話,如何實現此工作流程? 非常感謝!
我只是使用Task.ContinueWith
來安排每個任務的繼續,然后根據繼續中任務的結果更改狀態。 您知道任務已經啟動(因為您調用了Start()
)-您只需要知道任務何時完成即可。 如果失敗,取消或完成,則可以在繼續任務中觀察到這一點,然后可以更新狀態。 繼續任務是Action<Task>
,它接收已完成的任務。 您可以調用task.Status
來獲取該已完成任務的狀態。
然后,您不需要單獨的線程/任務即可定期監視狀態。
我認為您可以在管理器集合中可能具有的每個Task對象上使用Task.IsCompleted屬性。 希望這是您的要求?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.