public void ReaderThreadMethod(object o) { ByteBufferStream p = (ByteBufferStream)o; byte[] readBlock = new byte[8 * 1024]; int readSize; while ((readSize = p.Read(readBlock, 0, readBlock.Length)) != 0) { Interlocked.Add(ref dataRead, readSize); } }
public void TestSerialWrites() { var str = new ByteBufferStream(16 * 1024); byte[] writeBlock = new byte[8 * 1024]; byte[] readBlock = new byte[7 * 1024]; int detritusSize = 0; for (int i = 0; i < 73; i++) { str.Write(writeBlock, 0, writeBlock.Length); detritusSize += writeBlock.Length; Assert.IsTrue(detritusSize == str.BytesCurrentlyInStream, "expect size ({0}) does not match actual size ({1})", detritusSize, str.BytesCurrentlyInStream); detritusSize -= str.Read(readBlock, 0, readBlock.Length); Assert.IsTrue(detritusSize == str.BytesCurrentlyInStream, "expect size ({0}) does not match actual size ({1})", detritusSize, str.BytesCurrentlyInStream); while (detritusSize >= readBlock.Length) { detritusSize -= str.Read(readBlock, 0, readBlock.Length); Assert.IsTrue(detritusSize == str.BytesCurrentlyInStream, "expect size ({0}) does not match actual size ({1})", detritusSize, str.BytesCurrentlyInStream); } } Assert.IsTrue(detritusSize == str.BytesCurrentlyInStream, "expect size ({0}) does not match actual size ({1})", detritusSize, str.BytesCurrentlyInStream); }