Partilhar via


Segmentos de Primeiro Plano e Plano de Fundo

Um segmento gerenciado é um plano de fundo thread ou um segmento de primeiro plano.plano de fundo threads são idênticos aos segmentos de primeiro plano com uma exceção: um plano de fundo thread não mantém o ambiente de execução gerenciado em execução.Depois que todos os threads de primeiro plano foram interrompidos em um processo gerenciado (onde o arquivo .exe é um assembly gerenciado), o sistema interrompe todos os threads de plano de fundo e desligado.

Observação:

Quando o tempo de execução pára um plano de fundo thread porque o processo está sendo desligado, nenhuma exceção é lançada no segmento.No entanto, quando threads foram interrompidos com porque o AppDomain.Unload método descarrega o domínio do aplicativo, um ThreadAbortException é lançada em segmentos de primeiro plano e plano de fundo.

Use o Thread.IsBackground propriedade para determinar se um thread é um plano de fundo ou primeiro um plano thread, ou para alterar seu status. Um segmento pode ser alterado para um plano de fundo thread a qualquer momento, definindo seus IsBackground propriedade para true.

Observação importante:

O status de primeiro plano ou plano de fundo de um segmento não afeta o resultado de uma exceção sem tratamento no thread.No .NET estrutura versão 2.0, uma exceção sem tratamento em threads de primeiro plano ou plano de fundo resultados no encerramento do aplicativo.Consulte Exceções em threads gerenciado.

Segmentos que pertencem ao pool de threads gerenciado (isto é, segmentos cujo IsThreadPoolThread propriedade é true) são cadeias de plano de fundo. Todos sistema autônomo threads que insira o ambiente gerenciado de execução de código não gerenciado são marcados sistema autônomo threads de segundo plano.Todos os threads gerados por criar e iniciar um novo Thread objeto estão em segmentos de primeiro plano do padrão.

Se você usar um thread para monitorar uma atividade, sistema autônomo uma conexão de soquete, conjunto sua IsBackground propriedade para true para que o thread não impede que seu processo de terminação.

Consulte também

Referência

Thread.IsBackground

Thread

ThreadAbortException