2012-01-16 91 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