ArrayPool<T>.Return(T[], Boolean) Método

Definição

Retorna uma matriz para o pool que foi obtida anteriormente usando o Rent(Int32) método na mesma ArrayPool<T> instância.

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)

Parâmetros

array
T[]

Um buffer a ser retornado ao pool que foi obtido anteriormente usando o Rent(Int32) método.

clearArray
Boolean

Indica se o conteúdo do buffer deve ser limpo antes da reutilização. Se clearArray estiver definido como true, e se o pool armazenar o buffer para habilitar a reutilização subsequente, o Return(T[], Boolean) método limpará o array conteúdo para que um chamador subsequente usando o Rent(Int32) método não veja o conteúdo do chamador anterior. Se clearArray estiver definido como false ou se o pool liberar o buffer, o conteúdo da matriz ficará inalterado.

Comentários

Depois que um buffer é retornado ao pool, o chamador desiste de toda a propriedade do buffer e não deve usá-lo. A referência retornada de uma determinada chamada para o Rent método só deve ser retornada usando o Return método uma vez. O padrão ArrayPool<T> pode manter o buffer retornado para alugá-lo novamente ou pode liberar o buffer retornado se for determinado que o pool já tem buffers suficientes armazenados.

Importante

Retornar a mesma referência de matriz duas vezes ou continuar a usar a referência de matriz depois que ela tiver sido retornada é um problema de segurança de alta gravidade. Essas ações podem levar a vulnerabilidades sem uso e sem uso, o que pode resultar em corrupção de dados, vazamentos de dados e negação de serviço.

Aplica-se a