C# 在windows服务、线程或计时器中使用哪个更好?

C# 在windows服务、线程或计时器中使用哪个更好?,c#,multithreading,timer,windows-services,C#,Multithreading,Timer,Windows Services,您好,我是windows服务新手,我开发了一个windows服务,它使用了在OnStart()中创建新线程的线程,并使用该线程运行方法,并在下一次运行时使用睡眠线程,但我的一个朋友说使用计时器比使用线程更好,所以我想知道哪种方法是执行该程序的最佳方法?谢谢你的帮助,我想这取决于你在做什么。计时器和线程之间的区别在于计时器使用线程池中的一个线程,而线程为任务专用一个新线程 您可以在此处阅读更多内容:根据您的评论,您的目标是以特定的时间间隔运行一些代码: 从概念上讲,使用计时器比让线程睡眠要好。这就

您好,我是windows服务新手,我开发了一个windows服务,它使用了在OnStart()中创建新线程的线程,并使用该线程运行方法,并在下一次运行时使用睡眠线程,但我的一个朋友说使用计时器比使用线程更好,所以我想知道哪种方法是执行该程序的最佳方法?谢谢你的帮助,我想这取决于你在做什么。计时器和线程之间的区别在于计时器使用线程池中的一个线程,而线程为任务专用一个新线程


您可以在此处阅读更多内容:

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

从概念上讲,使用计时器比让线程睡眠要好。这就是计时器的用途。如果你选择线程睡眠方法,我认为在实践中它无论如何都会很好地工作,尽管更好的实践是使用计时器

还有第三种方法-使用作业调度器。您可以使用或更强大的()


这确实是一个关于你如何将语义正确性与实用主义相比较的问题

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

关于计时器和作业调度器的更多观点:

线程和计时器完全不同,
Thread.Sleep
是一种糟糕的方法,不过如果这是你的想法的话question@Sayse是的,但是开发windows服务最好的方法是什么我不知道你的windows服务是什么,这里没有人能回答that@user2553512您的目标是在特定的时间间隔(如每小时)运行一些代码,而在这段时间间隔内什么也不做吗?@lightbricko是的,我想在时间间隔内从web服务调用一个特定的方法,所以我在windows服务中的线程帮助下,将线程休眠到下一次运行