ICLRTask2::EndPreventAsyncAbort メソッド
新規または保留中のスレッド中止要求で、現在のスレッドを中止できるようにします。
HRESULT EndPreventAsyncAbort();
戻り値
このメソッドは、次の特定の HRESULT と、メソッドの失敗を示す HRESULT エラーも返します。
HRESULT |
説明 |
---|---|
S_OK |
メソッドは正常に終了しました。 |
HOST_E_INVALIDOPERATION |
メソッドは、現在のスレッドではないスレッドで呼び出されました。 |
解説
このメソッドを呼び出すと、現在のスレッドの遅延スレッド カウンターが 1 つずつデクリメントされます。
ICLRTask2::BeginPreventAsyncAbort および EndPreventAsyncAbort への呼び出しは入れ子にすることができます。 カウンターがゼロよりも大きい値である間は、現在のスレッドのスレッド中止が遅延されます。
この特性で公開される機能は、仮想マシン (VM: Virtual Machine) によって内部で使用されます。 このメソッドの使用法を誤ると、未指定の動作が VM で実行される可能性があります。 たとえば、最初に BeginPreventAsyncAbort を呼び出さずに EndPreventAsyncAbort を呼び出すと、以前に VM がカウンターをインクリメントしていた場合は、カウンターがゼロに設定される可能性があります。 同様に、内部カウンターはオーバーフローに対してチェックされません。 ホストと VM の両方によってカウンターがインクリメントされたために整数制限を超えた場合、結果の動作は未指定になります。
必要条件
プラットフォーム: 「.NET Framework システム要件」を参照
ヘッダー : MSCorEE.h
ライブラリ: MSCorEE.dll にリソースとして格納されていること
.NET Framework のバージョン: 4
参照
参照
ICLRTask2::BeginPreventAsyncAbort メソッド