未分類

C# マネージド デバッグ アシスタント 'ContextSwitchDeadlock' : 'CLR は、COM コンテキスト 0x46a7260 から COM コンテキスト 0x46a71a8 へ 60 秒で移行できませんでした。

C# で開発したアプリを実行中にエラーが発生した。

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

これだけ見ても何を言っているのかわからない。Entity Framework を使用してデータベースアクセスしている箇所でエラーが発生していることはわかる。おそらくクエリーの書き方が問題だと思う。要はタイムアウトだな。

ちなみにもう一度実行するとエラーは発生せず、正常に終了した。

-未分類