29 lines
636 B
C#
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);
|
|
}
|
|
}
|
|
}
|