C#でデバッグモード時のみに出る「ContextSwitchDeadlock」というエラーに対処。
2013-05-02|C#
早いもので5月に入っちゃいましたね。
私は最近、お仕事とお勉強に専念しているので、すっかりブログの更新回数も
減ってしまいました
早く時間に余裕が出来て、前みたいに毎日更新出来るようになるといいな♪
今日はC#でプログラムを書いていたのですが、C#からネット上にMySQLに大量の
データを書き込んでいる時に、エラーが発生してしまいました。
こんなエラーです。

エラーなんですけど、「続行」をクリックすれば、プログラムが落ちる事もなく、
続行できちゃいます。
しかしMySQLの登録作業は、このエラーが出た時点で中断されちゃうんです。
調べてみると、外部のCOM(今回の場合はMySQL)を利用したプログラムにおいて、
デッドロックがかかっているかもと、デバッガは判断しているようです。
このエラーはデバッグ時のみに発生し、exeで起動した場合には発生しないんです。
気にしなければいいのかもしれませんが、デバッグが途中で止まるのは嫌ですし、
色々と調べたところ、このエラーを出さない方法がありました
ツールバーより、デバッグ⇒例外で例外のダイアログボックスを開き、
Managed Debuggin Assistansの左側のプラスマークをクリックし、展開された
リストの中のContextSwitcheadlockのチェックを外せば大丈夫です。

この状態でデバッグモードでさっきと同じ処理をしたところ、MySQLへの登録処理を
無事に最後までエラーなく実行する事が出来ました
エラーも出なくなったし、とりあえずはこれでOKなんですけども、なんとなく
スッキリしませんよね
理由とか原因とかが、ちゃんと分かってないからだと思います。
この辺りがやっぱりプロではなくて、素人なんですよね~。
お勉強と経験を積むしかないですね
明日からまた連休ですけど、私はお勉強とお仕事を頑張りマ~ス
私は最近、お仕事とお勉強に専念しているので、すっかりブログの更新回数も
減ってしまいました

早く時間に余裕が出来て、前みたいに毎日更新出来るようになるといいな♪
今日はC#でプログラムを書いていたのですが、C#からネット上にMySQLに大量の
データを書き込んでいる時に、エラーが発生してしまいました。
こんなエラーです。

エラーなんですけど、「続行」をクリックすれば、プログラムが落ちる事もなく、
続行できちゃいます。
しかしMySQLの登録作業は、このエラーが出た時点で中断されちゃうんです。
調べてみると、外部のCOM(今回の場合はMySQL)を利用したプログラムにおいて、
デッドロックがかかっているかもと、デバッガは判断しているようです。
このエラーはデバッグ時のみに発生し、exeで起動した場合には発生しないんです。
気にしなければいいのかもしれませんが、デバッグが途中で止まるのは嫌ですし、
色々と調べたところ、このエラーを出さない方法がありました

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

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

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

理由とか原因とかが、ちゃんと分かってないからだと思います。
この辺りがやっぱりプロではなくて、素人なんですよね~。
お勉強と経験を積むしかないですね

明日からまた連休ですけど、私はお勉強とお仕事を頑張りマ~ス

- No Tag