[英]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.