LobbyServer/LobbyServerDto/BufferRental.cs

29 lines
636 B
C#

using System.Collections.Concurrent;
using System.Drawing;
namespace LobbyServerDto
{
public class BufferRental
{
private readonly ConcurrentQueue<byte[]> buffers = new ConcurrentQueue<byte[]>();
private readonly int size;
public BufferRental(int size)
{
this.size = size;
}
public byte[] Rent()
{
if (buffers.TryDequeue(out var buffer))
return buffer;
else
return new byte[size];
}
public void Return(byte[] buffer)
{
buffers.Enqueue(buffer);
}
}
}