Будет ли Windows ждать моего сервиса при запуске?

Я написал сервис, который должен запускаться автоматически. Он выполняет некоторые действия по инициализации в своем методе OnStart, включая настройку наблюдателей SENS для тех, кто входит в систему.

Будет ли Windows ждать, пока мой метод OnStart будет завершен, прежде чем он позволит пользователям войти в систему, или возможно, что такой вход в систему может произойти до того, как мои наблюдатели будут настроены, если пользователь перемещается достаточно быстро?

Если последнее верно, может ли кто-нибудь порекомендовать способ убедиться, что этого не произойдет?

1 ответ

Решение

К сожалению, ваш сервис запускается параллельно с другими операциями загрузки, и нет никакой гарантии, что OnStart() завершится до того, как кто-то войдет в систему. Это особенно верно, если OnStart() выполняет очень длительную операцию, но это не является практическим беспокойством, если OnStart() завершается быстро.

Возможно, вы можете структурировать свой код так, чтобы он не делал слишком много в OnStart() и, что еще лучше, правильно реагировал на запуск после того, как кто-то уже вошел в систему?

Удачи!

Другие вопросы по тегам