kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

ポンプしない状態

.NETアプリをデバッグ(というか、テスト)していたら、次のようなメッセージに遭遇。

マネージ デバッグ アシスタント 'ContextSwitchDeadlock' では 'hoge.exe' に問題を検出しました。
追加情報: CLR は、COM コンテキスト 0x(略) から COM コンテキスト 0x1a9398 へ 60 秒で移行できませんでした。ターゲット コンテキストおよびアパートメントを所有するスレッドが、ポンプしない待機を行っているか、Windows のメッセージを表示しないで非常に長い実行操作を処理しているかのどちらかです。この状態は通常、パフォーマンスを低下させたり、アプリケーションが応答していない状態および増え続けるメモリ使用を導く可能性があります。この問題を回避するには、すべての Single Thread Apartment (STA) のスレッドが、CoWaitForMultipleHandles のようなポンプする待機プリミティブを使用するか、長い実行操作中に定期的にメッセージをポンプしなければなりません。

…ごめんなさい(__)。どこで突入したんだろう…関数テンプレートに間違いがあって、無限ループに突入していた。