我了解到ArrayPool
类仅用于池阵列。
我可以使用ArrayPool
实现来池化对象(不是数组)吗?我不明白为什么不这样做,除了它返回的数组可能比我要求的大一点有点奇怪。
我在想这样的事情:
public class Worker
{
ArrayPool<Channel> channels;
public Worker()
{
channels = ArrayPool<Channel>.Shared;
}
public async Task ExecuteSomething(string message)
{
// It gets a bit weird here...
var rentedChannels = channels.Rent(1);
await rentedChannels[0].DoWork();
channels.Return(rentedChannels);
}
}
为方便起见,here是实现ArrayPool<T>
的链接。
答案 0 :(得分:0)
您似乎正在寻找的也许是ObjectPool<T>
查看示例 https://docs.microsoft.com/en-us/aspnet/core/performance/objectpool?view=aspnetcore-3.0
希望有帮助!