public void Clear() { lock (this) { IsEmpty.Set(); DataReady.Reset(); WriteReady.Set(); readclosevent.Reset(); writecloseevent.Reset(); foreach (byte[] block in m_Blocks) { FreeBlock(block); } m_Blocks.Clear(); m_RPos = 0; m_WPos = 0; m_Size = 0; EOS.Reset(); } }