2008-10-16 1 views
2

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

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

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

Кто-нибудь имеет понятие, как где начать проверять неисправную часть?

+0

И вы уверены, что приложение в памяти не является вашим ExEx.vshost.exe? :) – OregonGhost 2008-10-16 16:55:14

+0

Ха-ха, это было бы забавно :) – leppie 2008-10-16 16:59:03

ответ

4

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

2

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

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

1

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

1

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

2

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

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

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