Mam stylistyczne pytanie dotyczące wyboru implementacji wątku w tle, którego powinienem użyć w aplikacji formularza Windows. Obecnie mam BackgroundWorkerna formularzu, który ma nieskończoną (while(true))pętlę. W tej pętli używam WaitHandle.WaitAnydrzemki wątku, dopóki nie wydarzy się coś interesującego. Jeden z uchwytów zdarzenia, na które czekam, to „ StopThread” zdarzenie, dzięki czemu mogę wyrwać się z pętli. To zdarzenie jest sygnalizowane, gdy z mojego zastąpienia Form.Dispose().
Czytałem gdzieś, które BackgroundWorkerjest naprawdę przeznaczone do operacji, z którymi nie chcesz wiązać interfejsu użytkownika i które mają skończony koniec - jak pobieranie pliku lub przetwarzanie sekwencji elementów. W tym przypadku „koniec” jest nieznany i tylko wtedy, gdy okno jest zamknięte. Czy zatem bardziej odpowiednie byłoby dla mnie użycie wątku w tle zamiast BackgroundWorkerdo tego celu?