/// <summary> /// Disposes of all of the memory on the list. /// </summary> public void Dispose() { lock (m_syncRoot) { if (!m_disposed) { try { foreach (Memory block in m_memoryBlocks) { block.Dispose(); } m_memoryBlockAllocations = 0; m_isPageFree.ClearAll(); m_memoryBlocks.Clear(); } finally { m_disposed = true; // Prevent duplicate dispose. } } } }