Консольное приложение C# все еще находится в памяти после выхода

StackOverflow https://stackoverflow.com/questions/209304

  •  03-07-2019
  •  | 
  •  

Вопрос

У меня есть консольное приложение .net C# (не служба).он в основном подключается к веб-сервису, получает несколько файлов XML, копирует эти файлы в несколько мест на дисках, проверяет XML, обрабатывает его и отправляет эти объекты в другой веб-сервис.

Однако, когда основной метод существует (и окно консоли закрывается), я все равно вижу процесс в диспетчере задач.

Я попытался окружить все в основном методе попыткой поймать исключение ApplicationException, но так и не понял, почему приложение выходит из строя, хотя в остальном все работает гладко...

Кто-нибудь знает, с чего начать проверку неисправной детали?

Это было полезно?

Решение

Посмотрите на использование потоков и асинхронные вызовы.

Другие советы

Если окно консоли закрылось, кажется очень странным, что процесс все еще выполняется.Можете ли вы подключиться к нему в отладчике Visual Studio?(Очевидно, это отладочная сборка.)

Вы уверены, что это не предыдущий запуск, который все еще выполняется?

Если вы отлаживаете приложение, я видел ситуацию, когда Visual Studio создает хост-exe с именем, похожим на ваше приложение, с .vshost.exe в конце.Он использует этот контроль над вашим приложением для более удобной отладки.Этот хост-исполняемый файл остается после того, как вы завершили отладку вашей программы, чтобы он ждал и был готов, чтобы можно было быстро начать новый сеанс отладки.

Вы уверены, что это не этот exe висит?

Если вы запустите приложение без отладки, оно все равно будет зависать?

В вашем приложении почти наверняка есть незавершенный поток.Как сказал Джон, подключите отладчик и посмотрите, какие потоки живы.

Поскольку все остальные ответы предполагают, что у вас, вероятно, есть затяжной поток, но он не обязательно создан вами явно, вам может потребоваться вызвать Dispose или что-то подобное для одного или нескольких ваших объектов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top