更新 : 2007 年 11 月
任意のマネージ コールバックが現在指定したスレッドのキューに配置されているかどうかを示す値を取得します。
HRESULT HasQueuedCallbacks (
[in] ICorDebugThread *pThread,
[out] BOOL *pbQueued
);
パラメータ
pThread
[入力] スレッドを表す ICorDebugThread オブジェクトへのポインタ。pbQueued
[出力] 任意のマネージ コールバックが指定したスレッドのキューに現在配置されている場合は true である値へのポインタ。それ以外の場合は false。pThread パラメータに null を指定すると、HasQueuedCallbacks は、任意のスレッドのキューに現在配置されているマネージ コールバックがある場合に true を返します。
解説
コールバックは、ICorDebugController::Continue が呼び出されるたびに 1 つずつディスパッチされます。同時に発生する複数のデバッグ イベントをデバッガで報告する必要がある場合は、このフラグをチェックできます。
デバッグ イベントは、キューに配置されたときには既に発生しているため、デバッガはデバッグ対象の状態を確認するために、キュー全体をドレインする必要があります (キューをドレインするには ICorDebugController::Continue を呼び出します)。たとえば、キューのスレッド X 上に 2 つのデバッグ イベントがあり、最初のデバッグ イベント後にデバッガがスレッド X を中断した後、ICorDebugController::Continue を呼び出した場合、スレッド X の 2 番目のデバッグ イベントは、スレッドが中断されていてもディスパッチされます。
必要条件
プラットフォーム : 「.NET Framework システム要件」を参照
ヘッダー : CorDebug.idl
ライブラリ : CorGuids.lib
.NET Framework のバージョン : 3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0、1.1、1.0