問題タブ [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.
linq - DefaultIfEmpty を使用して Linq 強制的にエンティティを読み込むと、ObjectDisposedException が返されます
私はこのlinqを持っています:
その後、結果を確認したいと思います。
これにより、「if (inverter.InverterActualData == null)」行で次の例外がスローされます。
私がやろうとしているのは、インバーターのリストを取得することですが、同時にその Subplant および InverterActualData プロパティをロードします。(また、Subplant の場合、Plant プロパティを読み込みます)。
この問題は、インバーターの InverterActualData レコードがない場合に発生します。この場合、例外がスローされます。
コンテキストが閉じられる前にすべてのデータをロードしたいのはなぜですか? データベースへの 1 回のトリップは、各インバーターの InverterActualData を個別に呼び出すよりもはるかに高速であるためです。
ご覧のとおり、InverterActualData プロパティが null かどうかを確認しようとしていますが、ロードされていないようです。関係なく、例外がスローされます。
私も追加しようとしました:
しかし、これもうまくいきません。
プロファイラーでは、クエリは次のように変換されるため、私には奇妙に思えます。
これはまさに私が欲しいものです。また、DB でこのクエリを実行すると、Inverter、Subplant、Plant のデータと、InverterActualData のデフォルト値が取得されます。
何が問題なのですか?
c# - 常に ObjectDisposedException をスローするのはなぜですか?
Windows Phone は gif が扱えないので、ちょっと方法を書いてみたのですが、ちょっとエラーが出てしまったようです。
以下のコードは、(JPG および PNG 部分)bitimg.SetSource(e.Result); に対して実行されると、常に例外をスローします。
それが言ったように、それは処分されているので、私は e.Result を使用できないということですか? しかし、メソッドが停止していないのに、なぜコンパイラはそれを破棄するのでしょうか?
なぜ、どのように解決するのですか?
エラー情報:
{System.ObjectDisposedException: 破棄されたオブジェクトにアクセスできません。オブジェクト名: 'MS.Internal.InternalMemoryStream'。MS.Internal.InternalMemoryStream.Seek(Int64 オフセット、SeekOrigin 原点) で ImageTools.IO.Gif.GifDecoder.Decode(ExtendedImage 画像、ストリーム ストリーム) で xicihutong.ViewModel.RichTextBoxBindingBehavior.<>c__DisplayClass7.b__4(Object s, OpenReadCompletedEventArgs e ) System.Net.WebClient.OnOpenReadCompleted(OpenReadCompletedEventArgs e) で System.Net.WebClient.OpenReadOperationCompleted(Object arg)} で
}
==================================
c# - すべての入力が有効な場合にダイアログを非表示にする (ObjectDisposedException)
Windows CE 5 スキャナー デバイス用の Compact Framework を使用して C# GUI アプリケーションを開発しています。
このアプリケーションは、主にバーコード スキャナーによって、ユーザーが入力したデータを繰り返し収集するために使用されます。データには 2 つのタイプがあります。セッションの開始時にのみプロンプトが表示されるデータ (固定値と呼びます) と、常に変化するデータです。固定値は、いくつかの特別なバーコードをスキャンすることで変更できます。これにより、問題が発生します。
固定値データは、ダイアログで ValidationTextBoxes (TextBox から派生した自己記述クラス) に入力されます。これまでは、変更のためにバーコードをスキャンした後、ダイアログを呼び出してすべての固定値データをユーザーに提示していました。一部のデータが無効な場合、エラー メッセージが表示され、ユーザーが有効なデータを入力するまでダイアログを閉じることができません。ダイアログを表示しないようにするか、できるだけ早く非表示にするタスクがありました。データを完全に非表示に変更して、検証用の新しいクラスを作成せずに検証することはできないと思います (GUI コントロールで発生するように)。そのため、変更されたデータでダイアログを呼び出し、検証し、すべて問題なければ、非表示にします。それ以外の場合は、今までどおり開いたままにしてください。
次のメソッドは、ダイアログを表示するために呼び出されます。「検証」フラグが設定されている場合、データは検証され、有効な場合はフォームが閉じられます。
現在、「Control ctl = this.Controls[i];」で ObjectDisposedException が発生しています。timer.Tick で。
c# - フォームを実行しようとしたときの ObjectDisposedException
私は新しい C# プログラマーで、MSSQL テーブルの内容を含む電子メールを送信するプログラムを作成しようとしています。メインプログラムは次のようになります。
デバッグすると、 Application.Run(new Form1()); という行が表示されます。ObjectDisposedException をスローしています。
フォーム1
ウェブサーバーを実行する人がデプロイすると、コンパイル後に初めて正しく実行されますが、その後は常に、最初に実行したときにテーブルの内容がキャッシュされた電子メールを送信します。
どんな助けでも大歓迎です。十分な情報を提供していない場合は、お知らせください。
vb.net - 新しいフォームが古いフォーム用のメッセージを取得し続けるにはどうすればよいですか
バックグラウンドワーカーを持つ既存の計算オブジェクトを開いて接続するフォームがあります。バックグラウンド ワーカーが完了すると、メッセージが送信され、フォームは OnCompletion メソッドを実行します。このメソッドは、計算が失敗した場合にメッセージ ボックスを作成します。計算が失敗したとしましょう。その後、ユーザーは失敗に関するメッセージを受け取ります。フォームを閉じて、フォームの新しいインスタンスを開き、計算を再度実行します。再び計算が失敗し、フォームは OnCompletion メソッドを実行し、メッセージ ボックスでクラッシュします。
問題は、「これ」(フォーム)が処分されていることです。コードを変更して IsDiposed をテストする場合:
その後、メッセージ ボックスは呼び出されませんが、OnCompletion メソッドがすぐにもう一度実行され、IsDiposed が false になり、メッセージ ボックスが正しく呼び出されることがわかります。
フォームが破棄されているかどうかを確認するテストで問題は解決しましたが、OnCompletion メソッドが 2 回呼び出された場合は、何か間違ったことをしているに違いないと思います。
OnCompletion への二重呼び出しは、元のフォームが閉じられている場合にのみ発生することに注意してください。その後、計算が実行されるたびに OnCompletion メソッドが 2 回呼び出され、this.IsDiposed は 1 回目は true、2 回目は false になります。
OnCompletion への二重呼び出しを停止するための説明または提案があれば、誰でもできます。
c# - c# は破棄された例外をオブジェクト化しました - どうすればそれらを修正できますか?
私は初心者のC#です。.wavファイルから.rawファイルに変換するプログラムを作りたいです。いくつかのソースを見つけたので、それを使用したいと思います。しかし、コードで何かが起こりました。エラーは ObjectDisposedException に関連しています。
コードやアイデアを教えてください。コード全体は下にあります
c# - CryptoStream はベース ストリームを開いたままにできますか?
を作成し、書き込み用MemoryStream
に渡します。暗号化して、他のものに読み込むために開いたままにしておきますCryptoStream
。しかし、処分されるとすぐに、それも処分されます。CryptoStream
MemoryStream
CryptoStream
MemoryStream
CryptoStream
どうにかして基地をMemoryStream
開いたままにしておくことはできますか?