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.

Zobacz też