Stream.Dispose メソッド

定義

この Stream オブジェクトによって使用されているすべてのリソースを解放します。

オーバーロード

Dispose()

Stream によって使用されているすべてのリソースを解放します。

Dispose(Boolean)

Stream によって使用されているアンマネージド リソースを解放し、オプションでマネージド リソースも解放します。

Dispose()

ソース:
Stream.cs
ソース:
Stream.cs
ソース:
Stream.cs

Stream によって使用されているすべてのリソースを解放します。

public:
 virtual void Dispose();
public void Dispose ();
abstract member Dispose : unit -> unit
override this.Dispose : unit -> unit
Public Sub Dispose ()

実装

注釈

このメソッドは、バッキング ストアに変更を書き込み、ストリームを閉じてリソースを解放することで、ストリームを破棄します。

を呼び出 Dispose すと、 によって Stream 使用されるリソースを他の目的で再割り当てできます。 の詳細については Dispose、「 アンマネージド リソースのクリーンアップ」を参照してください。

注意 (継承者)

ストリーム オブジェクトのすべてのクリーンアップ ロジックを に Dispose(Boolean)配置します。 をオーバーライド Close()しないでください。

下位互換性の要件により、このメソッドの実装は Dispose パターンの推奨されるガイダンスとは異なります。 このメソッドは を呼び出 Close()し、 を呼び出します Dispose(Boolean)

適用対象

Dispose(Boolean)

ソース:
Stream.cs
ソース:
Stream.cs
ソース:
Stream.cs

Stream によって使用されているアンマネージド リソースを解放し、オプションでマネージド リソースも解放します。

protected:
 virtual void Dispose(bool disposing);
protected virtual void Dispose (bool disposing);
abstract member Dispose : bool -> unit
override this.Dispose : bool -> unit
Protected Overridable Sub Dispose (disposing As Boolean)

パラメーター

disposing
Boolean

マネージド リソースとアンマネージド リソースの両方を解放する場合は true。アンマネージド リソースだけを解放する場合は false

注釈

を 指定して、すべてのリソースを解放するtruedisposing必要があります。 が のtrue場合disposing、ストリームは基になるバッファーにデータがフラッシュされ、他のファイナライズ可能なオブジェクトにアクセスすることもできます。 ファイナライザー間で順序が不足しているため、ファイナライザーから呼び出された場合、これは不可能な場合があります。

ストリームがオペレーティング システム ハンドルを使用してソースと通信している場合は、この目的で のサブクラスを SafeHandle 使用することを検討してください。

このメソッドは、オーバーライドされている場合は、パブリック Dispose() メソッドと Finalize() メソッドによって呼び出されます。 Dispose()は、 パラメーターを に設定して保護されたDisposeメソッドをtruedisposing呼び出します。 FinalizeDispose に設定して disposingfalse呼び出します。

注意 (継承者)

派生クラスでは、 メソッドをClose()オーバーライドしないでください。代わりに、すべてのStreamクリーンアップ ロジックを メソッドにDispose(Boolean)配置します。

Dispose() は、他のオブジェクトから複数回呼び出すことができます。 Dispose(Boolean) をオーバーライドする場合は、以前に Dispose() を呼び出したときに破棄されたオブジェクトを参照しないように注意する必要があります。 を実装 Dispose(Boolean)する方法の詳細については、「 Dispose メソッドの実装」を参照してください。

と の詳細Dispose()については、「アンマネージド リソースのクリーンアップ」を参照してください。Finalize()

適用対象