Método ICLRTask2::BeginPreventAsyncAbort
Atrasa novas solicitações de anulação de encadeamento resultando em anulações de encadeamento no encadeamento atual.
Sintaxe
HRESULT BeginPreventAsyncAbort();
Valor Retornado
Esse método retorna os seguintes HRESULTs específicos, bem como erros HRESULT que indicam falha de método.
HRESULT | Descrição |
---|---|
S_OK | O método foi concluído com sucesso. |
HOST_E_INVALIDOPERATION | O método foi chamado em um thread que não é o thread atual. |
Comentários
Chamar esse método incrementa o contador de interrupção de thread de atraso para o thread atual em um.
Chamadas para BeginPreventAsyncAbort
e ICLRTask2::EndPreventAsyncAbort podem ser aninhadas. Enquanto o contador for maior que zero, as anulações de thread para o thread atual são atrasadas. Se essa chamada não estiver emparelhada com uma chamada para o EndPreventAsyncAbort
método, é possível atingir um estado no qual as anulações de thread não podem ser entregues ao thread atual.
O atraso não é respeitado para um encadeamento que aborta a si mesmo.
A funcionalidade exposta por esse recurso é usada internamente pela máquina virtual (VM). O uso indevido desses métodos pode causar um comportamento não especificado na VM. Por exemplo, chamar EndPreventAsyncAbort
sem primeiro chamar BeginPreventAsyncAbort
pode definir o contador como zero quando a VM tiver incrementado anteriormente. Da mesma forma, o contador interno não é verificado quanto ao estouro. Se exceder seu limite integral porque é incrementado pelo host e pela VM, o comportamento resultante não será especificado.
Requisitos
Plataformas: confira Requisitos do sistema.
Cabeçalho: MSCorEE.h
Biblioteca: incluída como um recurso no MSCorEE.dll
Versões do .NET Framework: disponíveis desde 4