2011-07-30 5 views
7

私のプログラムに奇妙な問題があります。私はWindowsフォームアプリケーションを開発しています。 Visual Studio(F5)でデバッグすると、正しく動作しますが、実行可能ファイルを実行するとクラッシュし、「mscorlib.dllで 'System.ObjectDisposedException'型の未処理の例外」が発生します。System.ObjectDisposedExceptionでプログラムがクラッシュする

私はこの例外をキャッチするためにtry/catchを最上位レベルに配置しようとしましたが、プログラムはクラッシュします。私はここで何が欠けていますか?

問題がどこにあるかを確認するためにコード全体をアップロードしなければならなかったので、コードをアップロードしませんでした。

+1

問題は、GCをデバッグして頻繁に廃棄されるオブジェクトを収集しない場合です。コードのどこかで、もはや有効な参照がないオブジェクトにアクセスしようとします。それは処分されました。どこのコードなしで正確に言うことは不可能です。 –

+2

もし彼がそれにアクセスしようとしているなら、明らかに彼はそれを参照する必要があります。 –

答えて

3

これは、トップレベルのキャッチブロックでキャッチされていないObjectDisposedExceptionですか?

私はこのケースで何をするのか分かりません - 明らかにスタックトレースを見て、それが処分されたものだけを見つけたいと思っています。いくつかの捕捉不可能な例外がありますが、このうちの1つではありません。おそらく、AppDomain.UnhandledExceptionイベントにハンドラをアタッチして、それが何かを見つけたかどうかを確認してください。

3

例外のスタックトレースを取得できる場合は、根本原因をデバッグするのに役立ちます。これに役立つコールスタックウィンドウがあります。ここの手順を確認してください:

また、Visual Studioでデバッグするために「Just My Code」オプションを無効にすることもできます。これにより、より優れた例外デバッグ情報が得られる場合があります。ここで(無効に)指示に従ってください:

+0

更新されたリンク:[How to:Just My Code](https://msdn.microsoft.com/en-us/library/h5e30exc(v=vs.100).aspx) – OriolBG

関連する問題