我想在我的服务中使用计时器。但我听说定时器导致死锁问题。 假设如果我将计时器设置为每10分钟启动一次。 我的服务需要5分钟才能完成当前的执行。 但在某些情况下,需要更多时间(不可预知)。 那么如果我的服务在10分钟内无法完成当前的执行 ,会发生什么情况。 我当前执行的服务会发生什么? 感谢您的帮助。Windows服务中的计时器
1
A
回答
2
您可以在Windows服务中使用定时器,因为它也对MSDN
表示服务应用程序的设计是长时间运行。因此,它通常会轮询或监视系统中的某些内容。监控在OnStart方法中设置。但是,OnStart实际上并没有进行监控。一旦服务操作开始,OnStart方法必须返回到操作系统。它不能永远循环或阻止。要设置简单的轮询机制,您可以使用System.Timers.Timer组件。在OnStart方法中,您将在组件上设置参数,然后将Enabled属性设置为true。定时器会定期在您的代码中引发事件,届时您的服务可以进行监控。
尽管存在上述情况,您仍然需要创建逻辑以避免死锁或在Elapsed
事件中指定的代码需要比间隔本身更长的时间。
Elapsed事件在ThreadPool线程上引发。如果处理Elapsed事件的持续时间比Interval长,则可能会在另一个ThreadPool线程上再次引发该事件。因此,事件处理程序应该是可重入的。
http://msdn.microsoft.com/en-us/library/system.timers.timer%28v=vs.80%29.aspx
相关问题
- 1. Windows服务和计时器
- 2. 在Windows服务中使用计时器
- 3. Windows服务线程内的计时器
- 4. 服务中的计时器
- 5. Windows服务计时器多线程
- 6. C#Windows服务计时器未触发
- 7. 在长时间运行的Windows服务中使用计时器
- 8. Windows服务中的计时器 - 不是真的有用吗?
- 9. Windows服务器任务计划程序
- 10. Windows服务中的计时器未触发ElapsedEventHandler
- 11. Windows服务中的可重入计时器
- 12. Windows服务中的计时器需要重新启动
- 13. 服务器端计时器?
- 14. 服务中的计时器功能(类型的计时器)
- 15. WCF服务主机中的计时器
- 16. C中的可调服务计时器
- 17. Android服务中的计时器?
- 18. 服务中的Android倒数计时器
- 19. win32服务中的计时器
- 20. Android服务中的计时器
- 21. 为什么计时器不能在windows服务中工作?
- 22. 在Windows服务中更改计时器间隔
- 23. 在Windows服务中使用计时器是否明智?
- 24. 计时器如何在.net Windows服务中工作?
- 25. Windows服务器中的System.Windows.Forms.Timer
- 26. 安卓计时器服务
- 27. 服务计时器通知
- 28. 窗户服务计时器
- 29. JavaEE计时器服务
- 30. EJB计时器服务: