using System.Collections.Concurrent; using System.Drawing; namespace LobbyServerDto { public class BufferRental { private readonly ConcurrentQueue buffers = new ConcurrentQueue(); 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); } } }