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

Definizione

Restituisce una matrice al pool ottenuto in precedenza utilizzando il Rent(Int32) metodo nella stessa ArrayPool<T> istanza.

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)

Parametri

array
T[]

Buffer da restituire al pool ottenuto in precedenza usando il Rent(Int32) metodo .

clearArray
Boolean

Indica se il contenuto del buffer deve essere cancellato prima del riutilizzo. Se clearArray è impostato su truee se il pool archivierà il buffer per abilitare il riutilizzo successivo, il Return(T[], Boolean) metodo cancella il array contenuto in modo che un chiamante successivo che usa il Rent(Int32) metodo non visualizzerà il contenuto del chiamante precedente. Se clearArray è impostato su false o se il pool rilascia il buffer, il contenuto della matrice rimane invariato.

Commenti

Dopo che un buffer è stato restituito al pool, il chiamante rinuncia a tutta la proprietà del buffer e non deve usarlo. Il riferimento restituito da una determinata chiamata al Rent metodo deve essere restituito solo una volta usando il Return metodo . L'impostazione predefinita ArrayPool<T> può mantenere il buffer restituito per poterlo noleggiare di nuovo oppure rilasciare il buffer restituito se è determinato che il pool dispone già di buffer sufficienti archiviati.

Importante

Se si restituisce due volte lo stesso riferimento alla matrice o si continua a usare il riferimento alla matrice dopo che è stato restituito, si tratta di un problema di sicurezza con gravità elevata. Queste azioni possono causare vulnerabilità double-free e senza uso , che potrebbero causare danneggiamento dei dati, perdite di dati e Denial of Service.

Si applica a