2014-05-20 48 views
0

我使用system.Thread.Timer类来创建一个线程。在停止主窗口服务时,我想在Windows服务的OnStop事件中正常关闭所有这些子服务线程?如何停止C#中包含多个线程的Windows服务?

+0

你问我们你想做什么? – Tarec

+0

看到这个答案:[如何设置不同服务器上的windows-services之间的依赖关系](http://stackoverflow.com/questions/12508892/how-to-set-up-dependencies-between-windows-services -on-不同的服务器功能于相同) – lsalamon

回答

2

有几种方法可以做到这一点。总之,你想要“取消”或停止你的主题所做的工作。为此,您可以使用下列之一:

  • 使用volatile bool场,看看是否有人要求取消,如果您使用的是Thread
  • 使用Task取消,如果你使用一个Task
  • 使用等待手柄(AutoResetHandleManualResetHandle)与Thread
  • 取消BackgrounWorker

请勿使用thread.Abort,以了解更多关于“线程中止是邪恶”的搜索