Compartilhar via


Segmentos de Primeiro Plano e Plano de Fundo

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

Observação

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

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

Observação importanteImportante

O status de primeiro plano ou plano de fundo de um segmento não afeta o resultado de uma exceção não tratada no thread.No.NET Framework versão 2.0, uma exceção não tratada em segmentos de primeiro plano ou de plano de fundo resulta no encerramento do aplicativo.Consulte Exceções de Threads gerenciados.

Threads de pool de segmentos gerenciado (isto é, segmentos cuja IsThreadPoolThread é a propriedade true) são segmentos de plano de fundo. Todos os threads que entrar no ambiente de execução gerenciado a partir do código não gerenciado são marcados como threads em segundo plano. Todos os threads gerados ao criar e iniciar uma nova Thread objeto são por segmentos de primeiro plano do padrão.

Se você usar um thread para monitorar uma atividade, como, por exemplo, uma conexão de soquete, defina sua IsBackground propriedade para true para que o segmento não impede que seu processo de terminação.

Consulte também

Referência

Thread.IsBackground

Thread

ThreadAbortException