C# · Avançado · Inglês · Técnico
ArrayPool
Pool compartilhado de arrays reutilizáveis (ArrayPool<T>.Shared). Você aluga um buffer com Rent e o devolve com Return, evitando alocar arrays grandes repetidamente.
Onde usar
Aparece em código de rede e parsing que precisa de buffers temporários grandes sem pressionar o GC. O array alugado pode ser maior que o pedido e vir com lixo, então use apenas o tamanho que você pediu.
Em código
using System.Buffers;
var pool = ArrayPool<byte>.Shared;
byte[] buf = pool.Rent(1024);
try { Console.WriteLine(buf.Length >= 1024); }
finally { pool.Return(buf); }Exemplos
Rent the buffer from the ArrayPool and return it in finally.
Alugue o buffer do ArrayPool e devolva no finally.
The rented array can be larger than requested.
O array alugado pode ser maior que o pedido.
Cuidado
Não esqueça de devolver com Return (use try/finally) nem use o array depois de devolvido: outro código pode recebê-lo.