Служба остановлена, но процесс остается на минуту - PullRequest
8 голосов
/ 27 апреля 2011

Я получил сложное приложение, которое может работать как служба Windows и как консольное приложение.

В основном я использую запуск консоли для отладки.Когда я нажимаю Ctrl + C на консоли, приложение немедленно останавливается (процесс завершается).

Когда я запускаю приложение как службу и выбираю ее остановку, MMC немедленно сообщает, что служба остановлена.Тем не менее, процесс все еще работает и занимает около минуты, чтобы остановиться.У меня нет проблем с этим, но я бы хотел, чтобы MMC подождал, как и другие сервисы.В настоящее время я могу снова запустить службу, пока старый процесс еще работает, и это приводит к ошибкам с эксклюзивными ресурсами.Также «перезапуск» в MMC не работает, поскольку он не ожидает завершения процесса.

Как я могу заставить свой процесс ждать или как узнать, какие потоки / процессы / методы занимают время?

1 Ответ

5 голосов
/ 27 апреля 2011

Для служб .Net см .: Как правильно остановить многопоточную службу Windows .NET?

Информацию об услугах с использованием WCF см. Также: http://msdn.microsoft.com/en-us/library/ms734781(VS.85).aspx

...