Co się dzieje z WindowsService po zatrzymaniu, podczas gdy usługa jest w trakcie wykonywania wątków?

0

Witam :)
Usługa Windows tworzy nowy Task

Task<AppIdentification> CheckRegistrationTask = Task<AppIdentification>.Factory.StartNew(() =>
{
}

Co się stanie, gdy zadanie będzie w trakcie wykonywania, a usługa zostanie zatrzymana? Oczywiście obsługuję metodę

protected override void OnStop()

Czy usługa nie zatrzyma się dopóki wątek nie zostanie zakończony? Usługa zabije wątek automatycznie? nie potrafię się dokopać dokumentacji

Z tego artykułu https://stackoverflow.com/questions/1528209/how-to-properly-stop-a-multi-threaded-net-windows-service wyczytałem, że nie mogę zakończyć metody OnStop, dopóki nie zakończę wszystkich wątków. A co się stanie, jeżeli tego nie zrobię?

2

usługa może zgłosić, że się zatrzymała (albo dostaniesz timeouta) ale proces będzie wisiał aż zakończą się wszystkie taski. Na 99% nie zostaną ubite przez system. A jak pisze, że masz zakończyć to masz zakończyć i tyle. Bez zastanawiania się co będzie bo przyjdzie nowa wersja systemu o się "nagle" okaże, że nie działa...

0

Rozumiem, tak też zrobię. Z tą wersją systemu to mnie zaskoczyłeś ;]

1 użytkowników online, w tym zalogowanych: 0, gości: 1