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

返回同一数组引用两次,或在返回数组引用后继续使用该数组引用是一个严重性较高的安全问题。 这些操作可能导致无双重和无用漏洞,这可能会导致数据损坏、数据泄漏和拒绝服务。

适用于