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 只釋放未管理的資源。

備註

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

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

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

給繼承者的注意事項

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

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

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

適用於