語言

Stream.Dispose 方法

定義

釋放物件所使用 Stream 的所有資源。

多載

名稱 Description
Dispose()

釋放 Stream所使用的所有資源。

Dispose(Boolean)

釋放 未管理的資源, Stream 並可選擇性地釋放受管理資源。

Dispose()

來源:
Stream.cs
來源:
Stream.cs
來源:
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.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 只釋放未管理的資源。

備註

你應該將所有資源指定 true 為 disposing。 當 disposing 為 true時,串流也能確保資料被清除到底層緩衝區,並存取其他可最終化的物件。 由於終結者之間缺乏排序,這可能無法實現。

如果你的串流使用作業系統的 handle 與來源通訊,建議考慮使用 的 SafeHandle 子類別來達成此目的。

此方法由公開方法呼叫,若Dispose()方法已被覆寫則由 該Finalize()方法呼叫。 Dispose() 呼叫受保護 Dispose 的方法,參數 disposing 設為 true。 Finalize 調用 Dispose 時設定 disposing 為 false。

給繼承者的注意事項

在衍生類別中,不要覆寫該 Close() 方法,而是將所有串流清理邏輯放入該 Dispose(Boolean) 方法。

Dispose() 可以被其他物件多次呼叫。 覆寫 Dispose(Boolean)時,請小心不要引用先前在呼叫中 Dispose()已處理的物件。 欲了解更多如何實施 Dispose(Boolean),請參閱「 實施處置方法」。

欲了解更多關於 Dispose() 和 Finalize()的資訊,請參閱 「清理未管理資源」。

適用於