Enumeração EClrOperation

Descreve o conjunto de operações para as quais um host pode aplicar ações de política.

Sintaxe

typedef enum {  
    OPR_ThreadAbort,  
    OPR_ThreadRudeAbortInNonCriticalRegion,  
    OPR_ThreadRudeAbortInCriticalRegion,  
    OPR_AppDomainUnload,  
    OPR_AppDomainRudeUnload,  
    OPR_ProcessExit,  
    OPR_FinalizerRun  
} EClrOperation;  

Membros

Membro DESCRIÇÃO
OPR_AppDomainRudeUnload O host pode especificar ações de política a serem tomadas quando um AppDomain é descarregado de maneira não graciosa (rude).
OPR_AppDomainUnload O host pode especificar ações de política a serem tomadas quando um AppDomain é descarregado.
OPR_FinalizerRun O host pode especificar ações de política a serem tomadas quando os finalizadores são executados.
OPR_ProcessExit O host pode especificar as ações de política a serem tomadas quando o processo for encerrado.
OPR_ThreadAbort O host pode especificar ações de política a serem tomadas quando um thread é abortado.
OPR_ThreadRudeAbortInCriticalRegion O host pode especificar as ações de política a serem tomadas quando uma interrupção de thread grosseira ocorre em uma região crítica do código.
OPR_ThreadRudeAbortInNonCriticalRegion O host pode especificar ações de política a serem tomadas quando uma interrupção de thread grosseira ocorre em uma região não crítica do código.

Comentários

A infraestrutura de confiabilidade CLR (Common Language Runtime) distingue entre interrupções e falhas de alocação de recursos que ocorrem em regiões críticas de código e aquelas que ocorrem em regiões não críticas de código. Essa distinção foi projetada para permitir que os hosts definam políticas diferentes dependendo de onde ocorre uma falha no código.

Uma região crítica de código é qualquer espaço em que o CLR não pode garantir que a interrupção de uma tarefa ou a falha em concluir uma solicitação de recursos afetará apenas a tarefa atual. Por exemplo, se uma tarefa está segurando um bloqueio e recebe um HRESULT que indica falha ao fazer uma solicitação de alocação de memória, é insuficiente simplesmente abortar essa tarefa para garantir a estabilidade do AppDomain, porque AppDomain pode conter outras tarefas aguardando o mesmo bloqueio . Abandonar a tarefa atual pode fazer com que essas outras tarefas parem de responder. Nesse caso, o host precisa da capacidade de descarregar o todo, AppDomain em vez de arriscar uma potencial instabilidade.

Uma região de código não crítica, por outro lado, é uma região onde o CLR pode garantir que uma interrupção ou uma falha afetará apenas a tarefa na qual o erro ocorre.

O CLR também distingue entre abortamentos graciosos e não graciosos (rude). Em geral, uma interrupção normal ou graciosa faz todos os esforços para executar rotinas de tratamento de exceção e finalizadores antes de abortar uma tarefa, enquanto uma interrupção rude não oferece tais garantias.

Requisitos

Plataformas: confira Requisitos do sistema.

Cabeçalho: MSCorEE.h

Biblioteca: MSCorEE.dll

Versões do .NET Framework: disponíveis desde 2.0

Confira também