4

嗨,我是 Windows 服务的新手,我已经开发了一个 Windows 服务,它使用在 OnStart() 中创建新线程并使用该线程运行方法并在下一次运行时使用睡眠线程的线程,但我的一位朋友说最好使用计时器比线程,所以我想知道执行该程序的最佳方法是什么?谢谢您的帮助

4

2 回答 2

3

根据您的评论,您的目标是在特定时间间隔运行一些代码:

从概念上讲,使用计时器比让你的线程休眠更好。这就是计时器的用途。如果您选择线程睡眠方法,我认为实际上它无论如何都会正常工作,尽管更好的做法是使用计时器。

还有第三种方法 - 使用作业调度程序。您可以使用Windows 任务调度程序或更强大的quartz.net此处为 nuget 包)。


这实际上是一个关于您如何重视实用主义的语义正确性的问题。

  • 从语义正确性的角度来看,最好的方法是使用作业调度程序,因为您实际上想要安排作业。
  • 从实用的角度来看,最好的方法可能是继续使用您已经开发的服务,即使它使线程休眠,并将时间花在修改完整工作代码之外的其他事情上。

关于计时器与作业调度程序的更多意见:在 Windows 服务中使用的最佳计时器

于 2013-08-02T11:28:31.220 回答
0

我想这取决于你在做什么。Timer 和 Thread 之间的区别在于 Timer 使用线程池中的一个线程,而 Thread 将一个新线程专用于任务。

您可以在此处阅读更多信息:http: //social.msdn.microsoft.com/Forums/vstudio/en-US/c5b0e037-ccb5-42c0-bb0a-304572c8c8d2/timer-vs-thread-performance

于 2013-08-02T11:10:51.253 回答