【发布时间】:2013-01-29 08:09:34
【问题描述】:
在我的 c# windows 服务中,我启动了几个线程。每个线程都应该在没有活动的特定时间段后处理它的对象。
我尝试了 System.Threading.Timer 和 System.Timers.Timer 类,但它们都在不同的线程上引发事件。
这就是发生的事情:
- 在 service.start 期间创建多个线程
- 每个线程监视一个目录并为每个新文件激活一个资源扩展功能
- 在线程内 1 小时没有活动后(在此期间未处理任何文件),我想清理该线程内的资源(结构映射、线程本地类)
【问题讨论】:
-
您尝试过任何同步方法吗?一些代码可能有用。
-
这是一种相当不错的方式来满足您的需求:albahari.com/threading
-
如果一个线程做了一些事情来重置计时器(它被称为重新触发吗?)。如果计时器到了,请处理它的对象。不同线程是什么意思?
-
你是如何启动线程的?您是否希望每个线程处理对象,或者您可以取消线程。 “没有活动”在什么地方? Windows 服务?线程?如何判断是否“没有活动”?
-
我在问题中添加了更多信息。谢谢
标签: c# multithreading