2013-09-17 4 views
0

Мне нужно закодировать службу Windows, но я не уверен, как реализовать остановку службы.Как я должен называть OnStop службы Windows?

OnStop «s документация не указывается, должен ли я позволить экземпляр ServiceBase в согласованном состоянии, или это эквивалентно Dispose: будет новый экземпляр службы инициализируются при перезапуске (как большинство сервисов UNIX) или же экземпляр будет использован?

ответ

1

Служба Windows - это в основном фоновый процесс. Как только он выйдет, все ресурсы памяти и системы, связанные с процессом, будут выпущены. Перезапуск службы инициализирует новый экземпляр.

Если у вашего сервиса нет ничего, что строго требует очистки, метод OnStop может быть пустым. Тем не менее, это хорошее место для выполнения упорядоченных остановок вещей, которые в ней нуждаются, например, закрытие файлов, закрытие соединений с базами данных, завершение соединений сокетов и т. Д.

+0

Дело в том, что мне нужно сделать несколько очищений, которые OnStart не может вернуться. Мне интересно, нужно ли мне реорганизовать службу, чтобы последовательность OnStart(); OnStop(); OnStart() на экземпляре будет работать. –

Смежные вопросы