語言

ArrayPool<T>.Return(T[], Boolean) 方法

定義

會回傳先前用該 Rent(Int32) 方法取得的陣列到池 ArrayPool<T> 中,該陣列已在同一實例上取得。

public abstract void Return(T[] array, bool clearArray = false);
abstract member Return : 'T[] * bool -> unit
Public MustOverride Sub Return (array As T(), Optional clearArray As Boolean = false)

參數

array
T[]

一個緩衝區,用來返回先前用該 Rent(Int32) 方法取得的池子。

clearArray
Boolean

指示緩衝區內容物是否應在重複使用前清除。 若 clearArray 設為 true,且池會儲存緩衝區以允許後續重用, Return(T[], Boolean) 則方法會清除該 array 方法的內容,使後續呼叫 Rent(Int32) 者無法看到前一呼叫者的內容。 若 clearArray 設定為 或 false 池會釋放緩衝區,陣列內容保持不變。

備註

一旦緩衝區被歸還給池,呼叫者就放棄對該緩衝區的所有權,且不得再使用。 從呼叫該 Rent 方法回傳的參考只需回 Return 傳一次。 預設 ArrayPool<T> 人可能會保留回來的緩衝區以便再次租用,或者如果判斷池中已有足夠的緩衝區,則可能釋放回來的緩衝區。

Important

回傳相同陣列參考兩次,或在陣列回傳後繼續使用,都是高嚴重度的安全問題。 這些行為可能導致雙 重免費 及 免費後使用 的漏洞,可能導致資料損壞、資料外洩及拒絕服務。

適用於