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