public void Write(DataBlock dataBlock) { if (m_interrupted) { return; } while (!m_queue.TryToEnqueue(dataBlock)) { } m_threads.TryToStartNewThread(DoWorkOrWait); }