Свойство Shared
ArrayPool<T>.Shared -
один пул на процесс для данного
T. Массив берут через
Rent
и отдают через
Return.
Обзор класса -
ArrayPool.
Синтаксис
using System.Buffers;
ArrayPool<int> pool = ArrayPool<int>.Shared;
Пример
Давайте одолжить массив через
Shared:
using System;
using System.Buffers;
class Program
{
static void Main()
{
int[] buffer = ArrayPool<int>.Shared.Rent(3);
bool res = buffer.Length >= 3;
Console.WriteLine(res);
ArrayPool<int>.Shared.Return(buffer);
}
}
Результат выполнения кода:
True
Пример
Давайте проверить, что ссылка на пул не меняется:
using System;
using System.Buffers;
class Program
{
static void Main()
{
bool res = ReferenceEquals(
ArrayPool<int>.Shared,
ArrayPool<int>.Shared);
Console.WriteLine(res);
}
}
Результат выполнения кода:
True
Пример
Давайте записать элемент и вернуть буфер:
using System;
using System.Buffers;
class Program
{
static void Main()
{
var pool = ArrayPool<int>.Shared;
int[] buffer = pool.Rent(3);
buffer[0] = 7;
int res = buffer[0];
Console.WriteLine(res);
pool.Return(buffer);
}
}
Результат выполнения кода:
7
Смотрите также
-
ArrayPool,
класс пула -
метод
Rent,
взять массив -
метод
Return,
вернуть массив -
метод
GetTotalMemory,
оценка занятой памяти