Wątki pierwszego planu i tła
Zarządzany wątek jest wątkiem w tle lub wątkiem pierwszego planu. Wątki w tle są identyczne z wątkami pierwszego planu z jednym wyjątkiem: wątek w tle nie zachowuje uruchomionego zarządzanego środowiska wykonawczego. Po zatrzymaniu wszystkich wątków pierwszego planu w zarządzanym procesie (gdzie plik .exe jest zestawem zarządzanym), system zatrzymuje wszystkie wątki w tle i wyłącza.
Uwaga
Gdy środowisko uruchomieniowe zatrzymuje wątek w tle, ponieważ proces jest zamykany, w wątku nie jest zgłaszany żaden wyjątek. Jednak po zatrzymaniu wątków, ponieważ AppDomain.Unload metoda zwalnia domenę aplikacji, element ThreadAbortException jest zgłaszany zarówno na pierwszym planie, jak i w wątkach w tle.
Thread.IsBackground Użyj właściwości , aby określić, czy wątek jest tłem, czy wątkiem pierwszego planu, czy też zmienić jego stan. Wątek można zmienić na wątek w tle w dowolnym momencie, ustawiając jego IsBackground właściwość na true
.
Ważne
Stan pierwszego planu lub tła wątku nie ma wpływu na wynik nieobsługiwanego wyjątku w wątku. Nieobsługiwany wyjątek w wątkach pierwszego planu lub w tle powoduje zakończenie aplikacji. Zobacz Wyjątki w zarządzanych wątkach.
Wątki należące do zarządzanej puli wątków (czyli wątki, których IsThreadPoolThread właściwość to true
) to wątki w tle. Wszystkie wątki, które wchodzą w zarządzane środowisko wykonywania z niezarządzanego kodu, są oznaczone jako wątki w tle. Wszystkie wątki generowane przez tworzenie i uruchamianie nowego Thread obiektu są domyślnie wątkami pierwszego planu.
Jeśli używasz wątku do monitorowania działania, takiego jak połączenie gniazda, ustaw jego IsBackground właściwość na wartość true
, aby wątek nie uniemożliwiał zakończenia procesu.