2013-06-04 3 views
0

Я создал две службы из одного exe, развернутого как службы windows. Каждая служба соответствует DLL (проект библиотеки классов). Когда я останавливаю службу, dll не выгружается и код, соответствующий этой DLL, продолжает работать. У меня есть опроллер, который работает периодически, и это продолжает опрос даже при отключении службы. Как я могу выгрузить соответствующую DLL при остановке службы?Несколько сервисов от одного exe

ответ

0

разгрузка dll - это не точечный способ делать вещи. вы должны скорее переопределить метод onStop() класса сервиса. установите некоторый флаг, который сигнализирует соответствующим DLL воздерживаться от ответа на опросы. вы можете убить поток опроса или лучше использовать семафор, чтобы заблокировать поток до начала/возобновления.

Если вы показываете какой-то код, мы можем помочь дальше. угадывание,

Есть ли таймер, который запускает процесс опроса? затем остановите/удалите этот таймер. создайте новый таймер в OnStart() службы. Другой способ - проверить флаг в обратном вызове таймера.

Есть ли бесконечный цикл, который делает опрос (снова и снова)? если есть один, то лучше реорганизовать код вместо таймера. в любом случае вы можете вставить флаг в тело цикла и продолжить цикл, если флаг установлен.

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