2011-04-27 39 views
5

我有一個複雜的應用程序,可以作爲Windows服務和控制檯應用程序運行。服務停止,但進程保持一分鐘

我大多使用控制檯啓動進行調試。當我在控制檯按下Ctrl + C時,應用立即停止(過程結束)。

當我將該應用程序作爲服務運行並選擇停止它時,MMC立即表示該服務已停止。但是,該過程仍在運行,需要一分鐘左右才能停止。我花時間沒問題,但我希望讓MMC像其他服務一樣等待。目前,我可以在舊的進程仍在運行時再次啓動服務,並且這會產生獨佔資源的錯誤。此外,MMC中的「重新啓動」不起作用,因爲它不會等待進程結束。

如何讓我的進程等待或如何找出哪些線程/進程/方法花費時間?

回答

2
+0

非常有用的鏈接。我很驚訝,我找不到他們。我試用了第一個鏈接的信息,並在我能夠驗證它的工作後接受答案。 – ZoolWay 2011-04-29 09:31:29

+0

是的,它的工作。處理OnStop()中所有線程的停止對我來說是這樣 - 就像在第一個關於.NET服務的鏈接中提出的那樣。謝謝! – ZoolWay 2011-05-03 14:53:49