我需要创建一些windows服务,它会每隔一小时经常执行一次。问题是 - 我应该使用哪个计时器控制:System.Timers.Timer或System.Threading.Timer之一?我在问,因为我一直在通过论坛阅读,我对这两个问题都得到了一些混合评论。另外,由于我对编程非常陌生,所以解释起来很难。谢谢。如何设置Windows Service应用程序,C#的自动重新启动?
回答
我使用System.Timers.Timer在我的Windows服务。这很容易控制和挂钩。当您键入“myTimer.Elapsed + = ...”时,VS 2010的Intellisense甚至会创建已用事件处理程序。
您也可以在事件处理程序开始时停止计时器,并在最后重新启动计时器要在事件处理程序在长时间运行处理完成之前触发定时器。例如:
System.Timers.Timer myTimer;
void Main()
{
myTimer = new System.Timers.Timer(1000);
myTimer.Elapsed += new System.Timers.ElapsedEventHandler(myTimer_Elapsed);
myTimer.Start();
}
void myTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
myTimer.Stop();
// process event
myTimer.Start();
}
你可以一步一步等待这段代码正在做什么?我相信我了解它,但我不完全确定。这是否说每秒都做什么功能/代码放置在“//处理事件”?谢谢。 – 2011-05-10 19:23:42
@Dante - myTimer将在myTimer.Start()后的一秒钟内调用myTimer_Elapsed。一旦进入myTimer_Elapsed,myTimer停止,你的处理代码被执行(无论你想在定时器激发时发生什么),然后myTimer重新启动。如果您的处理在下一个时间间隔发生之前完成,则您不必在每次处理已发生事件时都停止并启动每个计时器的计时器。 – 2011-05-10 23:34:43
阅读@乔恩飞碟双向的定时器写了起来:http://www.yoda.arachsys.com/csharp/threads/timers.shtml
- 1. QT4:如何重新启动应用程序?重新设置?
- 2. 重新启动后Windows Service不会自动启动
- 3. [Android]应用程序重新启动设备后重新启动
- 4. 在应用程序被终止后重新启动Android Started Service
- 5. 如何在Windows启动时自动启动应用程序?
- 6. 自动更新后重新启动我的应用程序?
- 7. 如何启动Windows Service启动事件?
- 8. C#:自动重启程序
- 9. 重新启动应用程序时的流星自动刷新
- 10. 市场更新后自动重新启动应用程序
- 11. 在机器重启时自动重启应用程序挂起应用程序
- 12. 如何重新启动我自己的qt应用程序?
- 13. 应用程序何时重新启动?
- 14. 如何设置一个C++程序在Windows启动时自动启动?(通过Windows服务解决方案)
- 15. 如何在Windows 8中重新启动Windows应用商店应用程序
- 16. 如何重新启动在Windows中编写的控制台c应用程序?
- 17. 重新启动Rails应用程序
- 18. 如何重置值并重新启动C程序
- 19. 如何重新启动windows服务c#
- 20. C++应用程序自动运行在Windows启动
- 21. 代码自动在Windows启动时启动Java应用程序
- 22. 如何重新启动C++命令提示符应用程序?
- 23. 避免重新启动应用程序
- 24. Android - backbutton - 重新启动应用程序
- 25. 在Windows启动应用程序C#
- 26. 设置应用程序如何启动应用程序的非导出活动?
- 27. 重新启动已启动的应用程序
- 28. ServiceStack自托管应用程序重新启动
- 29. VB.net自动重新启动应用程序
- 30. 重新启动设备时,是否会重新启动监视重要位置更改的iOS应用程序?
请注意,您实际上可能想要使用计划任务,而不是使用服务来执行定期重复任务。 – 2011-05-09 15:42:05