Mam usługa Windows i pisałem kod aby uruchomić zadanie w OnStart() imprezy:Jak uruchomić zadanie po uruchomieniu usługi systemu Windows?
protected override void OnStart(string[] args)
{
this.DoTask();
}
private void DoTask()
{
Task task1 = Task.Factory.StartNew(() => this.OriginalFileProcessor.StartPolling());
try
{
Task.Wait(task1);
}
catch (Exception ex)
{
this.Log.Error("Failed running the task", ex);
}
}
DoTask to niekończąca się pętla. Zatrzyma się tylko wtedy, gdy usługa zostanie zatrzymana.
Ale gdy próbuję uruchomić usługę, to czeka długo potem daje mi poniższy błąd:
Windows could not start the ... service on Local Computer.
Error 1053: The service did not respond to the start or control request in a timely fashion.
Jak go rozwiązać?
Czekanie nie czeka jako takie. Chodzi mi o to, że po prostu uchwyci wszelkie wyjątki od tego zadania. –
Czekanie * oznacza * "oczekiwanie jako takie". Twój kod siedzi tam, nic nie robiąc, czekając na zakończenie tego zadania. I robi to czekać na ten sam wątek, który nazwał 'OnStart'. –
nie. służy do przechwytywania wyjątku. –