private void Filler() { while (!blockSource.AllBlocksRead) { while (!stop && !circBuffer.ProducerCanWrite()) { Thread.Sleep(20); } if (stop) { return; } circBuffer.ProducerBlock = blockSource.SetNextBlock(circBuffer.ProducerBlock); circBuffer.ProducerAdvance(); } isEndOfStream = true; }