检查可能存在的对象的实例

时间:2015-07-11 04:43:59

标签: c# .net multithreading windows-services

一些序言: 我有一个Windows服务,每10秒钟就有一个计时器(尽管可以在app.config中配置)。当计时器触发事件​​时,事件处理程序会创建一个对象的实例(让它称之为Executor),它可以完成一些工作。 Executor对象创建后台线程以执行从DB获取的任务队列。 大多数情况下,执行程序的线程将在大约60秒内完成,因此有可能在任何时候,有六个或更多Executor对象的实例,都在做一些工作(它&#39 ; s轻量级工作,但可以长时间运行,因为它获取并等待东西 - 经过一段时间后,它会放弃,如果仍然没有完成)。

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

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

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

我明白我也不会打扰,只是跟df <- data.frame(matrix(unlist(varSet), nrow=100, byrow=T),stringsAsFactors=FALSE) 一起去讨论我认为最大限度的时间可以让它全部完成,但我不想假设赢了& #39;永远不会是缓慢的问题或更大的任务。

1 个答案:

答案 0 :(得分:0)

收藏是要走的路。添加它们并在服务结束时通过每个并让它们杀死它们各自的任务。