您好,我刚开始接触Windows服务。我已经使用线程编写了一个Windows服务,在OnStart()方法中创建了新线程,并使用该线程运行方法,然后使用sleep线程到下一个运行时间。但是我的一个朋友说最好使用定时器而不是线程,所以我想知道哪种方式更好?感谢您的帮助。
您好,我刚开始接触Windows服务。我已经使用线程编写了一个Windows服务,在OnStart()方法中创建了新线程,并使用该线程运行方法,然后使用sleep线程到下一个运行时间。但是我的一个朋友说最好使用定时器而不是线程,所以我想知道哪种方式更好?感谢您的帮助。
根据您的评论,您的目标是在特定时间间隔内运行一些代码:
从概念上讲,使用计时器比使线程休眠更好。这就是计时器的作用所在。如果您选择了线程休眠方法,我认为实际上它也可以正常工作,但最好的做法是使用计时器。
还有第三种方法-使用作业调度程序。您可以使用Windows任务计划程序或更强大的quartz.net(nuget包在此处)。
这实际上是一个关于如何权衡语义正确性和实用性的问题。
有关计时器和作业调度程序的更多意见:在Windows服务中使用最佳计时器
我想这取决于你在做什么。Timer 和 Thread 的区别在于 Timer 使用线程池中的线程,而 Thread 为任务专门分配一个新线程。
Thread.Sleep
虽然可以使用,但它是一个糟糕的方法。 - Sayse