Parallel.For Termination vb.net
-
28-10-2019 - |
Pergunta
Tenho um serviço que verifica pastas de rede usando um método parallel.for.
No entanto, recentemente estou descobrindo se eu interrompo o serviço, embora o Windows diga que o serviço foi interrompido, o processo ainda está em execução no gerenciador de tarefas.No entanto, está em 0 cpu e a memória não muda.Se eu tentar encerrar a tarefa (mesmo que seja forçado no prompt de comando), ele apenas diz acesso negado e terei que reiniciar o servidor.
Qual seria a melhor maneira de garantir que tudo termine?
Pensei em adicionar um booleano global que no procedimento de parada se tornasse verdadeiro e parte do meu código paralelo verificará isso e chamará s.stop.
Obrigado
Solução
Resumindo, quando o serviço é interrompido, ele precisa cancelar todas as operações pendentes e em execução e, em seguida, aguardar que essas operações sejam realmente concluídas.Verifique a referência do MSDN para Cancelamento de tarefa .