ArrayPool<T>.Return(T[], Boolean) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Devolve um array ao pool que foi previamente obtido 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 para regressar ao pool que foi previamente obtido usando o Rent(Int32) método.
- clearArray
- Boolean
Indica se o conteúdo do buffer deve ser limpo antes de ser reutilizado. Se clearArray for definido para true, e se o pool armazenar o buffer para permitir a reutilização subsequente, o Return(T[], Boolean) método limpará o array seu conteúdo para que um chamador subsequente que utilize o Rent(Int32) método não veja o conteúdo do chamador anterior. Se clearArray estiver definido para false ou se o pool libertar o buffer, o conteúdo do array permanece inalterado.
Observações
Depois de um buffer ser devolvido ao pool, o chamador abdica de toda a propriedade do buffer e não pode usá-lo. A referência devolvida de uma dada chamada ao Rent método só deve ser devolvida usando o Return método uma vez. O padrão ArrayPool<T> pode manter o buffer devolvido para o alugar novamente, ou pode libertar o buffer devolvido se for determinado que o pool já tem buffers suficientes armazenados.
Importante
Devolver a mesma referência do array duas vezes ou continuar a usar a referência do array depois de esta ter sido devolvida é uma questão de segurança de alta gravidade. Estas ações podem conduzir a vulnerabilidades duplamente livres e de uso após o uso , o que pode resultar em corrupção de dados, fugas de informação e negação de serviço.