Как изящно остановить службу Windows с многопоточной обработкой в потоке таймера? Можно ли добавить некоторую логику бесконечного цикла в метод OnStop, чтобы отложить отключение службы.
Вы должны обработать отмену потоков в вашем сервисе методом OnStop(). Попробуйте немного логики с <a href="http://msdn.microsoft.com/en-us/library/system.threading.manualresetevent.aspx" rel="nofollow noreferrer">ManualResetEvent</a> или <a href="http://msdn.microsoft.com/en-us/library/system.threading.autoresetevent.aspx" rel="nofollow noreferrer">AutoResetEvent</a> Вы, вероятно, также должны остановить свой таймер.
OnStop()
<a href="http://msdn.microsoft.com/en-us/library/system.threading.manualresetevent.aspx" rel="nofollow noreferrer">ManualResetEvent</a>
<a href="http://msdn.microsoft.com/en-us/library/system.threading.autoresetevent.aspx" rel="nofollow noreferrer">AutoResetEvent</a>
Возможно, вам потребуется использовать какой-нибудь флаг, чтобы указать, должен ли поток останавливаться или нет.Уже есть похожий вопрос по SO - здесь