Не 100% на самом деле с windows службами, у меня есть следующее:
protected override void OnStart(string[] args)
{
_myManager.Start();
}
В MyManager:
public void Start()
{
_myTask = Task.Run(DoStuff);
}
Теоретически, метод OnStart вернет и служба запустится успешно. async Task DoStuff()
- это просто бесконечное число l oop (хотя оно прекратится, если служба остановлена).
Я хочу добавить к этому попытку / ловлю. В идеале это было бы в методе OnStart, чтобы я мог вызвать this.Stop()
, чтобы остановить службу (так как это будет ServiceBase
). Это делается для того, чтобы перехватывать любые исключения, которые я не обрабатывал явным образом, поэтому я могу зарегистрировать их и завершить работу службы.
Могу ли я просто обернуть попытку перехвата _myManager.Start();
? Или мне нужно сделать что-нибудь умное с заданиями?