問題タブ [disposing]
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.
c# - C#新しいキーワードで作成した別のスレッドでTcpClientオブジェクトが破棄されないようにするにはどうすればよいですか?
そのため、C#でサーバーのクライアントを作成しようとしています。このクライアントは、メッセージをコマンドとして受け入れ、クライアントをリモートで制御できるようにします。masterServer.Connectの読み込みに問題が発生した後、問題が発生しました。アプリケーションを閉じるたびに、アプリケーションが完全に停止するまで10秒待つ必要があります。私はこれを止めるためにすべてを試みました...運がありません。だから私はそれをあきらめました、そして今別の問題を修正するために私はmasterServer = new TcpClient()を使用しています。これはCreateConnection()スレッド内でかなりうまく機能しているようです。しかし、スレッドが終了したら、どこかでSendClientInfo()を呼び出すと、次のランタイムエラーが発生します。
破棄されたオブジェクトSystem.Net.Sockets.TcpClientにアクセスできません
そのため、オブジェクトを破棄する前に保存する方法などを見つけるために最善を尽くしましたが、その方法がわかりません。だからここに私の質問があります:
- mainServer = new TcpClient()が破棄されないようにして、SendClientInfo()で使用できるようにするにはどうすればよいですか?
- 誰でもCreateConnection()メソッドを作り直して、それを正しく行う方法を確認できますか?私はそれを何千回も書き直しましたが、それでも非常にバグがあるように見え、masterServer.connect()は、サーバーにまだ接続していない場合、FOREVERを実行します。
- ここで確認できるその他の変更または修正。私は何時間もこれに出入りしていて、百のチュートリアルのように読んでソケットの使い方を自分自身に教えようとしています。私が間違っていることをあなたが私に示したものは何でも、私はいつも覚えていて、次回は正しくそれをします。
もう情報が必要な場合はお知らせください...本当に感謝しています。
asp.net - ユーザーがリクエストを離れるときにクリーニングアイテムを制御できますか?
複数のファイルをアップロードできるページがあります。ファイルは常にアップロードされます。つまり、多くのFileUploadコントロールとそれぞれの近くに送信ボタンがあり、すぐにアップロードされます。
ユーザーがページを離れてメインコンテナを保存せずに別のページに移動したら(たとえば、「item」= product / note / doc /これらのファイルが添付されているもの)、アップロードされたファイルをサーバーから削除する必要があります。 。
言い換えれば、ユーザーが戻ってくるつもりがないことをどうやって知ることができますか(つまり、彼はブラウザをシャットダウンするなど)。
button - 内側の JPanel からクリックして JFrame を破棄する
閉じたいJFrameに配置されたJPanelにあるボタンをクリックして、JFrameを破棄しようとしています。
JFrame クラスで静的メソッドを作成しようとしましたが、当然のことながら、私の IDE はそれが起こらないと言っていました。
解決策を考えている人はいますか?
ありがとう!
.net - 各インスタンスのすべてのイベントハンドラーを手動で削除する必要がありますか?
このクラスを検討してください。
このアイテムの破棄時にハンドラーを手動で削除する必要がありますか?これは、マネージコードコンパイラのGCまたは他のツールによって行われていませんか?
.net - IDisposableをパラメーターとして渡す
IDisposableをパラメーターとしてメソッドに渡し、そのメソッド内に配置することをお勧めしますか。複数のスレッドを使用する必要がある場合、これは一種の避けられないことです。ベストプラクティスでは、所有者(発信者)がそれを破棄する必要があるとされています。
例えば
所有者(スレッドを作成している)がもう存在しない場合はどうなりますか?例えば
ここに問題があります...
winforms - Form1 が Form2 を開いて Form2.TextChanged を登録する場合、Form2 が閉じている場合、Form1 内から Form2.TextChanged の登録を解除する必要がありますか?
これは、.NET からオブジェクトを適切に破棄することに関する別の質問です。dispose のベスト プラクティス (および人々の意見) に関する多くのさまざまな記事を読んだ後、私はその答えを得ることができませんでした。Form1 と Form2 の 2 つのフォームがあります。
フォーム1
フォーム2
Form2 で Close() を呼び出す場合、Form2 は is dispose() メソッドを呼び出す必要があります。これは is Show() メソッドを呼び出して開かれたためですが、Form1 が TextChanged イベントまたは Form2 に登録されているため、これにより Form2 が破棄または作成されなくなります。 GC による廃棄のプロセスは効率が悪いのですか?
前もって感謝します
wpf - WPFカスタムコントロールでの管理対象リソースの破棄
サードパーティライブラリ用にいくつかのWPFカスタムコントロールを作成しています。たとえばComboBox
、いくつかの依存関係プロパティを使用して標準を拡張しました。主な問題は、コントロールにプライベートインスタンスとしていくつかのIDisposable
オブジェクトがあり、これらのオブジェクトを破棄したいということです。私のコントロールの構造は次のようなものです:
コントロールがGCされたときにこのオブジェクトが破棄されるようにするにはどうすればよいですか?それを行うための最良の方法は何ですか?
前もって感謝します。
PS:私はこの方法を試しましたFinalizer
が、それはクリーンで良い解決策ではなくUnloaded
、コントロールのイベント(テーマが変更されたときにも発生する)があると思います。
c# - 変数を破棄するときにC#で変数をnullに設定する必要がある場合はありますか?
変数が現在のスコープに対してローカルである場合、変数が終了する直前にそれらをnullに設定する理由はありますか?
c# - 匿名イベント ハンドラーと破棄
匿名イベント ハンドラーについて、かなり短い質問があります。
これは私が持っているコードです:
上記のコードは問題ありませんか、それとも Disposed Event Handler を削除するためにコードを書き直す必要がありますか? このようなもの:
c# - 複数の using ステートメントを使用して DataSet と DataTables を破棄する
ここで何が起こっているのか説明してもらえますか?