ArrayPool<T>.Return(T[], Boolean) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
同じ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 メソッドを 1 回だけ使用して返す必要があります。 既定の ArrayPool<T> は、返されたバッファーを再度レンタルするために保持することも、プールに既に十分なバッファーが格納されていると判断された場合は、返されるバッファーを解放することもできます。
Important
同じ配列参照を 2 回返すか、返された後も配列参照を引き続き使用することは、重大度の高いセキュリティの問題です。 これらのアクションにより、 二重に解放 された 後に使用 される脆弱性が発生する可能性があります。これにより、データの破損、データ リーク、サービス拒否が発生する可能性があります。