У меня есть сервис windows, в котором есть методы, которые запускают и забывают о задачах. Я хотел бы получить некоторую ясность о том, как они обрабатываются, когда служба windows останавливается или перезапускается?
Для ясности я использую этот код: _ = Task.Run (() => DoSomething () );
Если эта задача находится на полпути выполнения, как служба windows обрабатывает как остановку, так и перезапуск службы?
(1) Мое предположение о перезапуск заключается в том, что будет вызван метод службы OnStop (), задача «забей и забудь» продолжится. Затем будет вызван OnStart (), и снова задача продолжения и забывания должна продолжиться. Задание будет выполнено по завершении. Есть ли какое-либо другое управление задачами или памятью, которое происходит автоматически во время выполнения. net в этом процессе?
(2) Я предполагаю, что при остановке вызывается метод службы OnStop (), задание огонь и забыть продолжится. Будет возвращен метод OnStop, затем служба будет убита, что приведет к уничтожению задачи «огонь и забыл».
(3) Следовательно, использование задач «забыть» и «забыть», по моим собственным предположениям, не должно мешать службе либо Остановка или перезапуск.
Примечание. У меня проблемы с остановкой и перезапуском службы. Поэтому я пытаюсь определить поведение здесь. Кто-нибудь может подтвердить или опровергнуть мои предположения? Спасибо.