2012-01-16 101 views
1

我有一個服務,使用parallel.for方法掃描網絡文件夾。Parallel.For終止vb.net

但是最近我發現如果我停止服務,那麼當Windows說服務停止時,進程仍在任務管理器中運行。然而,它在0 CPU,內存不會改變。如果我嘗試結束任務(即使是命令提示符中的強制),它只是說訪問被拒絕,我必須重新啓動服務器。

什麼是確保一切終止的最佳方式?

我想添加一個全局布爾值,在停止過程中它變爲true,我的一部分並行代碼將檢查並調用s.stop。

謝謝

回答

2

總之,當你的服務被停止,它需要取消所有待處理的運行操作,然後等待這些操作真正完成。查看Task Cancellation的MSDN參考。

+0

對不起,我忘了我發佈了這個。我看到這也適用於parallel.foreach。謝謝 – Jasin 2012-02-09 21:08:20