/// <summary> /// Disposes the specified buffer. /// </summary> /// <param name="buffer">The buffer.</param> /// <param name="memoryManager">The memory manager.</param> public static void Dispose(ref byte[] buffer, MemoryBufferManager memoryManager) { var obj = Interlocked.Exchange(ref buffer, null); if (obj != null && memoryManager != null) { memoryManager.ReturnBuffer(obj); } }
/// <summary> /// Disposes the specified buffers. /// </summary> /// <param name="buffers">The buffers.</param> /// <param name="memoryManager">The memory manager.</param> internal static void Dispose(ref List <byte[]> buffers, MemoryBufferManager memoryManager) { var obj = Interlocked.Exchange(ref buffers, null); if (obj != null && memoryManager != null) { foreach (var buffer in obj) { memoryManager.ReturnBuffer(buffer); } } }