Информация об изменениях

Сообщение Re[5]: Правильная остановка долгозавершающейся службы от 31.03.2021 7:25

Изменено 31.03.2021 7:26 Carc

Re[5]: Правильная остановка долгозавершающейся службы
Здравствуйте, nekoriu, Вы писали:

C>>А если не секрет, в чем причина такой могучей задержки? Что она — служба — делает-то в это время да так долго?

N>Служба моя в том смысле, что у меня есть ее код. Писал ее не я. Мне нужно подправить ее завершение. Служба работает с несколькими БД, имеет несколько плагинов, прослушивает сокет и выполняет команды. Завершение 40 секунд у Debug конфигурации. Надо будет попробовать с конфигурацией Release.
По моему тут ошибка в архитектуре, в общей схеме организации работы службы, а не техническая проблема…

А работать с БД, и слушать сокет нельзя что ли в соседнем потоке? Когда основной поток службы получит сигнал о завершении, то пусть взведет какой-нить примитив синхронизации (mutex, event и.т.п). Ну, а соответственно фоновые потоки (работа с БД, сокет) пусть периодически проверяют этот примитив синхронизации. И коль примитив взведен, то сразу на выход…

Не? Так подойдет разве?
Re[5]: Правильная остановка долгозавершающейся службы
Здравствуйте, nekoriu, Вы писали:

C>>А если не секрет, в чем причина такой могучей задержки? Что она — служба — делает-то в это время да так долго?

N>Служба моя в том смысле, что у меня есть ее код. Писал ее не я. Мне нужно подправить ее завершение. Служба работает с несколькими БД, имеет несколько плагинов, прослушивает сокет и выполняет команды. Завершение 40 секунд у Debug конфигурации. Надо будет попробовать с конфигурацией Release.
По моему тут ошибка в архитектуре, в общей схеме организации работы службы, а не техническая проблема…

А работать с БД, и слушать сокет нельзя что ли в соседнем потоке? Когда основной поток службы получит сигнал о завершении, то пусть взведет какой-нить примитив синхронизации (mutex, event и.т.п). Ну, а соответственно фоновые потоки (работа с БД, сокет) пусть периодически проверяют этот примитив синхронизации. И коль примитив взведен, то сразу на выход…

Не? Так не подойдет разве?