問題タブ [disposable]
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# - コレクションに含まれるスレッドの作成と終了
カスタム コレクション (スレッド セーフな ObservableQueue) があります。コレクション クラス内にビジネス ロジックを実装しました (つまり、アイテムを 1 つずつキューから取り出し、外部に公開します)。これはうまくいっています。コレクションが初期化されたスレッドをブロックしないようにするために、OnservableQueue はその作業を実行するスレッドを実装します。現在、起こりうる落とし穴について完全には確信が持てません。
コンストラクターでスレッドを初期化する (開始しない! 初期化のみ) のは悪い考えですか? そして、スレッドを終了するための最良の方法ではないにしても、どのような方法がありますか? スレッドを終了する方法を知る必要はないことに注意してください。それは正常に機能しています。むしろ、使い捨てパターンを使用して何か問題があるか、スレッドを終了するために呼び出される必要があるメソッドを作成することに興味があります。実装IDisposableする場合、コレクション/キューに関して考慮しなければならないことはありますか?
編集:スレッドは実際には、エンキュー メソッドでスローされるのを防ぐために事前に初期化されるだけNullReferenceExceptionであり、そこで再び適切に初期化されます (エンキュー メソッドは、デキュー スレッドが既に実行されていることを確認し、新しいものを開始しない場合) . すべてのアイテムがキューから取り出され、スレッドがその作業を完了するたびに、それはもはや生きていないことに注意してください。そのため、キューが空で新しいアイテムが追加されるたびに、キューを処理するために新しいスレッドが開始されます。
if ステートメントには、初期化されたスレッドが必要です。これを実現する方法は他にもありますが、スレッドを事前に初期化するのが最も面倒ではないようです。天気をチェックした後、スレッドが生きていることがわかります。これは、事前に初期化されているときはそうではありませんが、適切に再初期化されます。
c# - 静的メソッド内で破棄可能なオブジェクトを管理する
上記のコードは、ストリームを正しく閉じたり破棄したりしていないように見えるため、使用に失敗します。後続の書き込みでは、「使用中のファイル」IOException が発生します。
非静的メソッドを使用するようにクラスを変更すると、正しく動作するように見えます。
なぜ行動の違いがあるのか わかりませんか?
c# - userControl1.Dispose()は、すべての使い捨てオブジェクトを処理しますか?
userControlライブラリを作成しました。これにはNetworkStream、StreamReader、FileStreamが含まれています。
したがって、このuserControlを持つフォームが閉じたときに、それらをすべて破棄する必要がありますか?
Form1_FormClosing(object sender,FormClosingEventArgs e)userControlにはそのようなものがないので、いつこれらのストリームを破棄する必要がありますか?
userControl1.Dispose()はそれを処理しますか?
前もって感謝します :)
php - How to block Disposable Email Addresses in your website's registration form?
I would like to know of the possible ways to block disposable email addresses from registering in my website.
For simplicity, let's take the example where the registration form of the website is done with HTML and PHP.
Any ideas, solutions or suggestions would be greatly appreciated.
session - セッション中のServiceContextとOrganizationServiceProxy
ユーザーがアーリーバウンドエンティティを介してDynamicsCRM2011データを操作できるようにするASP.Netアプリがあります。
現在、ServiceContextとOrganizationServiceProxyをセッションに保存しています。これは、特定のタイプのオブジェクトを取得し、ユーザーが必要とするときに関連するエンティティを取得する必要があるためです。最後に、ユーザーが保存を押したときにそれらを更新します。
ServiceContextとOrganizationServiceProxyがIDisposableを実装していることを知っているので、破棄する必要があります。現在、Global.asaxのセッション終了時にこれを行っています。
私は自分の考えをテストしている最中ですが、エンティティを取得するとき、またはプロセス全体が完了したときに、実際にはプロキシとコンテキストの両方をインスタンス化して破棄する必要がありますか?
すべてのMSガイドは、オブジェクトが破棄されるようにプロセス全体をusingステートメントでラップすることを示していますが、プロセスでユーザーの操作が必要な場合はどうなりますか?
.net - .NET - 標準出力の破棄が単体テスト中にのみ許可されるのはなぜですか?
まず第一に、私は標準出力を処分したくないということを指摘したいと思います...説明した動作が見られる理由を知りたいだけです。説明されている悪いコードを書きませんでした。
単体テストには .NET 4 を使用し、テスト対象のコードには .NET 3.5 を使用しています。テスト フレームワークとして MSTest for .NET 4 を使用しています。
最近、標準エラー出力を破棄するという失敗のためにエラーをスローしていたライブラリで作業しています。( LibTiff.NET ReadDirectory が System.ObjectDisposedException Only During Unit Tests を与えているを参照してください)。
これは相対的に彼らのコードがどのように見えるかです:
基本的に、単体テストを実行していないときは、標準出力を破棄しても破棄しませんが、単体テストを実行している場合は許可されます。
単体テストのコンテキストでそうする場合にのみ、標準出力が使い捨てである理由を誰かが説明できますか?
c# - 破棄されたオブジェクトをチェックし、既に破棄されている場合はメソッドで ObjectDisposedException をスローする方法
使い捨てパターンで IDisposalbe インターフェイスを実装する使い捨てクラスがあります。制約を維持するには、オブジェクトが破棄されたときに、パブリック メソッドへの後続の呼び出しで ObjectDisposedException がスローされるようにする必要があります。明らかな解決策は、bool 値 isDisposed をチェックして例外をスローすることです。しかし、リフレクション ベースのソリューション (存在する場合、または他のアプローチがある場合) を使用して、この制約をすべてのパブリック メソッドに自動的に適用するにはどうすればよいでしょうか。私がやりたくないのは、私が持っているすべてのメソッドでこのチェックを行うことです (つまり、すべての呼び出しの前に IsObjectDisposed() メソッドを呼び出したくない)
前に説明した実用的なアプリケーションとは別に、MyClass などのクラスのメソッドを呼び出すたびに、Foo() などのメソッドを自動的に呼び出す方法を知る必要があります。
scala - Disposable Resource Pattern
Is there anything standardized within the Scala library to support the disposable resource pattern?
I mean something similar to that supported by C# and .NET just to mention one.
For example does official Scala library provide something like this:
Note: I'm aware of this article «Scala finally block closing/flushing resource» but it seems not integrated within the standard lib
c# - Ninject を使用して注入可能なインスタンスを破棄するか破棄しないか
ソリューションで Ninject を構成するための次のコード ブロックがあります。
私の意見では、ここで使用されている使い捨てパターンは必要ありません..
IDependencyScope は IDisposable ですが、IDisposable メンバーを構築している場合にのみクリーンアップする必要がありますが、コンストラクターに挿入されたリゾルバーはクラスによって所有 (作成) されておらず、IResolutionRoot は IDisposable から派生/実装していません...
私はここにいますか?
(参照用に IDisposable パターンに関するこの記事を確認してください)
(編集): これは実際には次のクラスで使用される基本クラスであるため、ここで IDisposable 実装を削除することはできません...