Metodo ICLRTask2::BeginPreventAsyncAbort
Ritarda le nuove richieste di interruzione di thread in modo che non comportino interruzioni nel thread corrente.
HRESULT BeginPreventAsyncAbort();
Valore restituito
Questo metodo restituisce gli HRESULT specifici seguenti nonché gli errori HRESULT che indicano l'esito negativo del metodo.
HRESULT |
Descrizione |
---|---|
S_OK |
Il metodo è stato eseguito correttamente. |
HOST_E_INVALIDOPERATION |
Il metodo è stato chiamato su un thread che non è il thread corrente. |
Note
La chiamata di questo metodo incrementa di uno il contatore di ritardo di interruzione del thread corrente.
Le chiamate di BeginPreventAsyncAbort e ICLRTask2::EndPreventAsyncAbort possono essere annidate. Finché il contatore è maggiore di zero, le interruzioni del thread corrente vengono ritardate. Se questa chiamata non viene abbinata a una chiamata del metodo EndPreventAsyncAbort, è possibile raggiungere uno stato in cui le interruzioni di thread non possono essere eseguite per il thread corrente.
Il ritardo non viene rispettato per un thread che interrompe se stesso.
Le funzioni esposte da questa funzionalità sono utilizzate internamente dalla macchina virtuale (VM, Virtual Machine). L'utilizzo improprio di questi metodi può provocare comportamenti imprevisti nella VM. Ad esempio, se si chiama EndPreventAsyncAbort senza prima chiamare BeginPreventAsyncAbort è possibile che il contatore venga impostato su zero quando la VM l'ha incrementato in precedenza. Analogamente, per il contatore interno non viene eseguita alcuna verifica di overflow. Se tale contatore supera il proprio limite integrale poiché viene incrementato sia dall'host sia dalla VM, il comportamento risultante è imprevedibile.
Requisiti
Piattaforme: vedere Requisiti di sistema di .NET Framework.
Intestazione: MSCorEE.h
Libreria: inclusa come risorsa in MSCorEE.dll
Versioni di .NET Framework: 4
Vedere anche
Riferimenti
Metodo ICLRTask2::EndPreventAsyncAbort