Поделиться через


Передний план и фоновые потоки

Управляемый поток — это фоновый поток или поток переднего плана. Фоновые потоки идентичны потокам переднего плана с одним исключением: фоновый поток не поддерживает выполнение управляемой среды выполнения. После остановки всех потоков переднего плана в управляемом процессе (где файл .exe является управляемой сборкой), система останавливает все фоновые потоки и завершает работу.

Замечание

Когда среда выполнения останавливает фоновый поток, поскольку процесс завершает свою работу, исключение в потоке не возникает. Однако, когда потоки останавливаются из-за того, что метод AppDomain.Unload выгружает домен приложения, исключение ThreadAbortException выбрасывается как в потоках переднего плана, так и в фоновых потоках.

Thread.IsBackground Используйте свойство, чтобы определить, является ли поток фоном или потоком переднего плана, или изменить его состояние. Поток можно перевести в фоновый режим в любой момент, установив для его свойства значение IsBackgroundtrue.

Это важно

Состояние переднего плана или фона потока не влияет на результат необработанного исключения в потоке. Необработанное исключение в основном потоке или фоновых потоках приводит к прекращению работы приложения. См. исключения в управляемых потоках.

Потоки, принадлежащие управляемому пулу потоков (т. е. потоки, свойства которых IsThreadPoolThread являются true) являются фоновыми потоками. Все потоки, которые входят в управляемую среду выполнения из неуправляемого кода, помечены как фоновые потоки. Все потоки, созданные путем создания и запуска нового Thread объекта, по умолчанию являются потоками переднего плана.

Если вы используете поток для мониторинга активности, например подключения сокета, установите свойство IsBackground в значение true, чтобы поток не препятствовал завершению вашего процесса.

См. также