2011-02-02 36 views
11

アプリケーションのデバッグ中に次のエラーが発生しました。CLRはCOMコンテキスト0x3b2d70からCOMコンテキストに遷移できませんでした

CLRは、COMコンテキスト0x3b2d70からCOMコンテキスト0x3b2ee0に60秒間移行できませんでした。宛先コンテキスト/アパートメントを所有するスレッドは、ポンピング待機を行わないか、Windowsメッセージをポンピングせずに非常に長い実行操作を処理する可能性が最も高いです。この状況は一般的にパフォーマンスに悪影響を及ぼし、アプリケーションが応答しなくなったり、メモリ使用量が時間の経過とともに累積的に蓄積することさえあります。この問題を回避するには、シングルスレッドアパートメント(STA)のすべてのスレッドでポンプ待機プリミティブ(CoWaitForMultipleHandlesなど)を使用し、長時間実行されている操作中に定期的にメッセージを送信する必要があります。

なぜこのエラーがスローされますか。

+1

私はあなたの質問に、エラーが発生する可能性のあるコードを投稿するように詳細を追加することをお勧めします。 –

答えて

13

私は解決策

は、デバッグ - > Exceptions->マネージドデバッグアシスタント下ContextSwitchDeadlockをオフする必要がありました。

ContextSwitchDeadlockのチェックを外した後、エラーをスローしません。

+50

はい、VS **はそれを隠すためです。これは、問題がなくなったという意味ではありません! – Odys

+0

@odyodyodys私は例外が発生したため、スプラッシュスクリーンの間に60秒間待ってから明白な理由がないため、例外を隠さなかったことを特に嬉しく思っています。見つけられないバグを修正することはできません。 – erodewald

+2

なぜ何かが分かっていないことが分かりません**仕事は**働いている理由が分かりません**。 –

関連する問題