ICLRTask2::BeginPreventAsyncAbort メソッド
現在のスレッドでスレッドを中止する、新しいスレッド中止要求を遅延します。
構文
HRESULT BeginPreventAsyncAbort();
戻り値
このメソッドは、次の特定の HRESULT と、メソッドの失敗を示す HRESULT エラーも返します。
HRESULT | 説明 |
---|---|
S_OK | メソッドは正常に完了しました。 |
HOST_E_INVALIDOPERATION | メソッドは、現在のスレッドではないスレッドで呼び出されました。 |
解説
このメソッドを呼び出すと、現在のスレッドのスレッド中止遅延カウンターが 1 つ増加します。
BeginPreventAsyncAbort
と ICLRTask2::EndPreventAsyncAbort の呼び出しは入れ子にすることができます。 カウンターが 0 より大きい限り、現在のスレッドのスレッド中止は遅延されます。 この呼び出しが EndPreventAsyncAbort
メソッドの呼び出しとペアリングされていない場合、スレッドの中止が現在のスレッドに配信されない状態になる可能性があります。
遅延は、それ自体を中止するスレッドには適用されません。
この機能によって公開されている機能は、仮想マシン (VM) によって内部的に使用されます。 これらのメソッドを誤用すると、VM で不特定の動作が発生する可能性があります。 たとえば、最初に BeginPreventAsyncAbort
を呼び出さずに EndPreventAsyncAbort
を呼び出すと、VM で以前に増分したカウンターが 0 に設定される可能性があります。 同様に、内部カウンターのオーバーフローはチェックされません。 ホストと VM の両方によって増分されたことにより整数の制限を超えた場合、結果として得られる動作は不特定です。
必要条件
:「システム要件」を参照してください。
ヘッダー: MSCorEE.h
ライブラリ: MSCorEE.dll にリソースとして含まれます
.NET Framework のバージョン: 4 以降で使用可能
関連項目
.NET