2017年5月9日火曜日

VisualStudioから、直接実行した場合に、下図のようなエラーダイアログが表示されました。
対応策を調べましたので、まとめておきました。




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

【対応策】
Visual Studioの
[デバッグ] メニューの [例外] で表示されるダイアログで [Managed Debuggin Assistants] の [ContextSwitchDeadlock] のチェックを外す





【参考URL】
https://social.msdn.microsoft.com/Forums/ja-JP/39fef89f-19f6-4c6a-ad9e-7d6a35200bed/contextswitchdeadlock?forum=vbgeneralja
http://accountingse.net/2010/10/216/
http://nanaganbaru.blog.fc2.com/blog-entry-273.html

0 件のコメント:

コメントを投稿