Compartilhar via


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

Confira também