Вопрос

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

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

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

Это было полезно?

Решение

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

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

Удачи!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top