問題タブ [objectdisposedexception]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
14223 参照

c# - ObjectDisposedException が処理されませんでした: 安全なハンドルがプログラムの終了時に閉じられました

.NET 4 C# コンソール アプリケーションがあります。IBM i からデータを取得し、インターネット SQL Server に送信します。終了するまで完璧に動作しますが、次のエラーが発生します。

System.ObjectDisposedException は処理されませんでした メッセージ = 安全なハンドルが閉じられました Source=mscorlib ObjectName="" StackTrace: System.Runtime.InteropServices.SafeHandle.DangerousRelease() で System.Threading.RegisteredWaitHandleSafe.Finalize() InnerException:

私のプログラムコードは次のとおりです。

コンソールに、開始時刻と終了時刻が表示されます。したがって、最終行が実行されることはわかっています。私は何を忘れているのか、何をしていないのか?

更新: Sync* メソッドは、IBM からオブジェクトにデータをプルし、エンティティ フレームワークを使用してレコードをデータベースに挿入します。

すべてのメソッドは、これと同様に機能します。

0 投票する
3 に答える
1467 参照

c# - オブジェクト例外の破棄

Web 上のソースをクロールしているときに、次のように見える多くの定型コードに遭遇しました。

public class CustomObject: IDisposableたくさんのメソッドを持つ がいくつかあるとします。

現在、これらの各メソッドにはデフォルトのサニティ チェックがあります。

ただし、(IDisposableインターフェイスの実装により) 次のチェックが各メソッドに追加されます。

さて、これは一般的な慣行ですか?古い使い捨てクラスの再設計とこれらのチェックの実装を開始する必要がありますか?

0 投票する
1 に答える
1681 参照

c# - c# XNA 破棄されたオブジェクトにアクセスできません。オブジェクト名:「Texture2D」。しかし、私はそれを処分しません

エラー: 破棄されたオブジェクトにアクセスできません。オブジェクト名: 'Texture2D'

なぜこうなった!私のコード全体のどこにも、破棄するように指示していません! これは、私の XNA c# ゲームの LoadContent() で発生しています。このエラーが発生したコード。これが発生した Texture2D を強調表示しました。

0 投票する
3 に答える
9666 参照

c# - .Net 2.0 で SerialPort を閉じるときの ObjectDisposedException

COM ポート経由で USB ドングルと通信する C# Windows フォーム アプリケーションがあります。.Net 2.0 で SerialPort クラスを通信に使用しています。シリアル ポート オブジェクトは、アプリケーションの存続期間中開いています。アプリケーションはデバイスにコマンドを送信し、デバイスから非送信請求データを受信することもできます。

私の問題は、フォームが閉じられたときに発生します。COM ポートを閉じようとすると、(残念ながらランダムに) ObjectDisposedException が発生します。Windows スタック トレースは次のとおりです。

同様の問題を抱えている人々からの投稿を見つけて、[こちら][1] の回避策を試しました。

[1]: http://zachsaw.blogspot.com/2010/07/net-serialport-woes.htmlですが、これは IOException のためのものであり、問​​題は解決しませんでした。

私の Close() コードは次のとおりです。

私のロギングは、SerialPort の BaseStream (これは最初のtryブロックにあります) を閉じようとしても実行されないことを示したので、この行を削除して実験しましたが、例外はまだ定期的にスローされます - 2 番目のtryブロックのロギングが表示され、例外が発生しました。どちらの catch ブロックも例外をキャッチしません。

何か案は?

更新 - 完全なクラスの追加:

0 投票する
3 に答える
1243 参照

c# - 新しいフォームを開いてから閉じて、もう一度開くと、未処理の例外が発生する

私はObjectDisposedException was unhandledメッセージで取得していますCannot access a disposed object.

これは、クラスの先頭でこの子フォームを初期化しMyForm myForm = new MyForm();、そのフォームのテキストボックスにテキストを追加してから、myForm.txtBox.AppendText("Text");コード付きのボタンを使用して新しいフォームを開くと発生しますmyForm.Show();。仕事が終わったら、フォームを閉じることができます。今、データを再度表示したいときに、その例外が発生しています。

テキスト ボックスの内容を新しいフォームに保持したいのですが、すべてを破棄していないという問題があるようです。

これを回避して、ボタンを押すたびに新しいフォームのコンテンツを表示できるようにするにはどうすればよいですか?

0 投票する
1 に答える
1385 参照

c# - LINQ to SQL、オーバーライドdispose

すでに開いている接続を渡すことで、LINQ toSQLDataContextを作成しています。これは機能しますが、終了時にDataContextを破棄しても、接続が閉じられることはないため、どこでも接続がリークされています。これは仕様によるものだと理解しています。

私がやりたいのは、DataContextが破棄されたら、接続が確実に閉じられるようにすることです。

次のように、DataContextでDisposeをオーバーライドしようとしました。

ただし、これは機能しません...ObjectDisposedExceptionが発生します。ブレークポイントを設定すると、この時点ですべてがすでに破棄されていることがわかります。

私が見つけた唯一の回避策は、DataContextのDisposeメソッドを非表示にすることです。このような:

しかし、これは私には少し悪いコードの臭いがあります。ここに進むための推奨される方法は何ですか?

完全なコードサンプル(DataClasses1DataContextは空のDataContextです):

0 投票する
1 に答える
4972 参照

.net - System.ObjectDisposedException: 破棄されたオブジェクトにアクセスできません - なぜ起こっているのですか?

スタックトレースでエラーが発生しました...

このエラーを生成するコードは....

.show と .close メソッドの順序を入れ替えただけではエラーになりません

最初のケースではエラーが発生し、2 番目のケースではエラーが発生しない理由を教えてください。

0 投票する
4 に答える
14599 参照

c# - 閉じたフォームを開きます

this.Close()を使用して、閉じたフォームを再び開くにはどうすればよいのでしょうか。Mainmenu.Show()を使用して閉じたフォームを開こうとするたびに、例外は「破棄されたオブジェクトにアクセスできません。オブジェクト名:Mainmenu」というエラーをスローします。

どうすれば再び開くことができますか?

0 投票する
1 に答える
17849 参照

c# - 破棄されたオブジェクトにアクセスできません-wcfクライアント

問題が発生しているWCFクライアントがあります。
時々、私はこの例外を受け取ります:Cannot access a disposed object。これが私が接続を開く方法です:

ご覧のとおり、毎回接続を閉じてから再開しています。何が問題だと思いますか?

スタック:

0 投票する
3 に答える
5135 参照

c# - .NETCFのFileStreamとObjectDisposedException

このメソッドをいくつかのファイルパスに対して実行します。問題は、File.Openでファイルにアクセスできない場合(別のプロセスで使用されているため)に発生します。

次の行で:

そしてめったに私は得ません

これは私が望む例外です。では、なぜオブジェクトはほとんどの場合廃棄されるのでしょうか?注:最初にusingステートメントにFileStream行がありましたが、オブジェクトが破棄された可能性があると考えたため、削除しました。しかし、問題は残っています。

編集:を持っていないコンパクトフレームワークを使用しますReadAllBytes