C # Console Application ainda residente na memória após a saída
-
03-07-2019 - |
Pergunta
Eu tenho um C # aplicativo de console .net (não um serviço). que basicamente se conecta a um webservice, recebe alguns arquivos xml, copia esses arquivos para alguns localização em uma unidades, valida o xml, processa e envia esses objetos para outro serviço web.
No entanto, quando existe o método principal (e os fecha a janela de console) eu ainda posso ver o processo no Gerenciador de tarefas.
Eu tentei circundante tudo no método principal com uma tentativa, para pegar um ApplicationException, e eu ainda não tenho nada a respeito de porque o aplicativo trava mesmo que tudo funciona sem problemas de outra forma ...
Alguém tem uma pista sobre por onde começar para verificar se a peça defeituosa?
Solução
Olhe para uso e assíncronas chamadas de Tópicos.
Outras dicas
Se a janela do console fechou, parece muito estranho fato de que o processo ainda está em execução. você pode anexar a ele no depurador Visual Studio? (Obviamente, uma compilação de depuração.)
Você tem certeza que não é uma corrida anterior, que ainda está em execução?
Se você está depurando o aplicativo, em seguida, eu vi a situação em que o Visual Studio cria um exe host chamado semelhante ao seu aplicativo com .vshost.exe no final. Ele usa esse controle a sua aplicação para uma melhor experiência de depuração. Este exe anfitrião fica em torno Depois de terminar a depuração do seu programa para que a sua espera e prontos para que ele possa iniciar uma nova sessão de depuração rapidamente.
Você tem certeza que não é este exe que está pendurado em torno de?
Se você executar o aplicativo sem depuração, ele ainda pendurar ao redor, então?
Você quase certamente tem um fio terminado-un em sua aplicação. Como disse Jon, anexar com o depurador e ver o que tópicos estão vivos.
Como todas as outras respostas sugeriram que você provavelmente tem um fio persistente, mas não é necessariamente aquele que você criou explicitamente, você pode precisar chamar Dispose ou algo semelhante em um ou mais de seus objetos