C#でデバッグモード時のみに出る「ContextSwitchDeadlock」というエラーに対処。 - ナナの毎日頑張るブログ

C#でデバッグモード時のみに出る「ContextSwitchDeadlock」というエラーに対処。

早いもので5月に入っちゃいましたね。

私は最近、お仕事とお勉強に専念しているので、すっかりブログの更新回数も
減ってしまいました

早く時間に余裕が出来て、前みたいに毎日更新出来るようになるといいな♪


今日はC#でプログラムを書いていたのですが、C#からネット上にMySQLに大量の
データを書き込んでいる時に、エラーが発生してしまいました。

こんなエラーです。
C# ContextSwitchDeadlock

エラーなんですけど、「続行」をクリックすれば、プログラムが落ちる事もなく、
続行できちゃいます。

しかしMySQLの登録作業は、このエラーが出た時点で中断されちゃうんです。

調べてみると、外部のCOM(今回の場合はMySQL)を利用したプログラムにおいて、
デッドロックがかかっているかもと、デバッガは判断しているようです。

このエラーはデバッグ時のみに発生し、exeで起動した場合には発生しないんです。

気にしなければいいのかもしれませんが、デバッグが途中で止まるのは嫌ですし、
色々と調べたところ、このエラーを出さない方法がありました

ツールバーより、デバッグ⇒例外で例外のダイアログボックスを開き、
Managed Debuggin Assistansの左側のプラスマークをクリックし、展開された
リストの中のContextSwitcheadlockのチェックを外せば大丈夫です。
C# ContextSwitchDeadlock


この状態でデバッグモードでさっきと同じ処理をしたところ、MySQLへの登録処理を
無事に最後までエラーなく実行する事が出来ました


エラーも出なくなったし、とりあえずはこれでOKなんですけども、なんとなく
スッキリしませんよね


理由とか原因とかが、ちゃんと分かってないからだと思います。

この辺りがやっぱりプロではなくて、素人なんですよね~。

お勉強と経験を積むしかないですね

明日からまた連休ですけど、私はお勉強とお仕事を頑張りマ~ス
ここは記事下のフリースペースです
コメント
非公開コメント

トラックバック

http://nanaganbaru.blog.fc2.com/tb.php/273-80dffce9