Как и в следующей ссылке, можно остановить, запустить и «остановить, а затем запустить» службу, используя код C #.
http://www.csharp -examples.net / рестарт-окна-сервис /
Я запек сервис .NET, который реализует OnStart
и OnStop
. Однако мне нужно реализовать функцию «умного перезапуска», которая более сложна, чем просто остановка и запуск. Мне нужно сократить время простоя до нескольких секунд, если это так (но Stop + Start может занять минуты в этом случае, когда все сделано чисто, и я должен сделать это чисто), и чтобы некоторые части системы были доступны, в то время как другие перезагружаются / обновляются .
Короче говоря, прежде чем я приступлю к реализации этой функции OnSmartRestart
, я хочу убедиться, что существует довольно простой способ вызвать этот вызов из другого приложения C #.
Эта функция важна, но опасна. Я хочу сделать его довольно скрытым, несколько безопасным, а также сделать его простым и сделать так, чтобы это оказало незначительное влияние на производительность моей службы Windows, пока она выполняет свою обычную работу и не перезагружается.
Если мне придется опросить какой-то файл или открыть порт и потратить на это слишком много ЦП, это не будет хорошим решением. Я также хочу сохранить это как ПРОСТО, КАК ВОЗМОЖНО (извините за повторение).