次の方法で共有


ICLRTask2::BeginPreventAsyncAbort メソッド

現在のスレッドでスレッドを中止する、新しいスレッド中止要求を遅延します。

構文

HRESULT BeginPreventAsyncAbort();  

戻り値

このメソッドは、次の特定の HRESULT と、メソッドの失敗を示す HRESULT エラーも返します。

HRESULT 説明
S_OK メソッドは正常に完了しました。
HOST_E_INVALIDOPERATION メソッドは、現在のスレッドではないスレッドで呼び出されました。

解説

このメソッドを呼び出すと、現在のスレッドのスレッド中止遅延カウンターが 1 つ増加します。

BeginPreventAsyncAbortICLRTask2::EndPreventAsyncAbort の呼び出しは入れ子にすることができます。 カウンターが 0 より大きい限り、現在のスレッドのスレッド中止は遅延されます。 この呼び出しが EndPreventAsyncAbort メソッドの呼び出しとペアリングされていない場合、スレッドの中止が現在のスレッドに配信されない状態になる可能性があります。

遅延は、それ自体を中止するスレッドには適用されません。

この機能によって公開されている機能は、仮想マシン (VM) によって内部的に使用されます。 これらのメソッドを誤用すると、VM で不特定の動作が発生する可能性があります。 たとえば、最初に BeginPreventAsyncAbort を呼び出さずに EndPreventAsyncAbort を呼び出すと、VM で以前に増分したカウンターが 0 に設定される可能性があります。 同様に、内部カウンターのオーバーフローはチェックされません。 ホストと VM の両方によって増分されたことにより整数の制限を超えた場合、結果として得られる動作は不特定です。

必要条件

:システム要件」を参照してください。

ヘッダー: MSCorEE.h

ライブラリ: MSCorEE.dll にリソースとして含まれます

.NET Framework のバージョン: 4 以降で使用可能

関連項目