2012-01-16 2 views
1

나는 parallel.for 메서드를 사용하여 네트워크 폴더를 검색하는 서비스를 가지고 있습니다.Parallel.For 해지 vb.net

그러나 최근에 서비스를 중지하면 Windows가 서비스가 중지되었다고 말하면서 프로세스를 계속 작업 관리자에서 실행 중입니다. 그러나 그것은 0 cpu이고 메모리는 변하지 않습니다. 시도하고 명령 프롬프트에서 강제로 심지어 작업을 끝내면 그냥 액세스가 거부되었습니다 및 서버를 다시 부팅해야합니다.

모든 것이 종료되도록하는 가장 좋은 방법은 무엇입니까?

정지 절차에서 true로 바뀌고 내 병렬 코드의 일부가이를 확인하고 s.stop을 호출한다는 전역 Boolean을 추가 할 것을 고려했습니다. 서비스가 중지되면

가 짧은에서는

답변

2

감사합니다, 그 다음, 보류중인 모든 실행중인 작업을 취소 실제로 완료 될 때까지 그 작업을 기다릴 필요가있다. Task Cancellation에 대한 MSDN 참조를 확인하십시오.

+0

죄송합니다. 게시했습니다. Parallel.foreach에서도 작동합니다. 고맙습니다 – Jasin