检查可能存在的对象实例

Check for instances of an object that might exist

一些序言: 我有一个 windows 服务,它有一个每十秒触发一次的计时器(尽管可以在 app.config 中配置)。当计时器触发一个事件时,事件处理程序创建一个对象实例(我们称它为执行器)来完成一些工作。 Executor 对象创建后台线程来执行从数据库中获取的任务队列。 大多数时候,Executor 的线程会在大约 60 秒内完成,因此有合理的机会在任何时候都有六个或更多 Executor 对象的实例,它们都在做一些工作(这是轻量级的工作,但可以long 运行 因为它获取和获取并等待东西 - 一段时间后,如果仍未完成,它会放弃)。

如果服务被要求停止,我不想留下这些后台线程,在某些情况下,我可能希望让 Executor 对象在关闭之前完成。

是否可以在 OnStop() 方法中获取 Executor 对象的实例集合,并检查每个实例的 属性,然后从那里做出决定?

我目前的想法是,每次我实例化 Executor 时,我将它添加到一个集合中(并在完成时删除每个实例),然后在我停止时查询该集合。看起来很干净,但我想知道是否还有更多 'fluid' 方式?

我明白我也懒得理会了,就用 RequestAdditionalTime 来涵盖我认为最长的时间可以让它全部完成,但我不想假设不会以后永远不会有缓慢的问题或更大的任务。

collection 是必经之路。添加它们并在服务结束时检查每个并让它们终止各自的任务。