2014-05-20 68 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,以瞭解更多關於「線程中止是邪惡」的搜索