NanoByte.Common.Streams.CircularBufferStream.Dispose C# (CSharp) Method

Dispose() protected method

protected Dispose ( bool disposing ) : void
disposing bool
return void
        protected override void Dispose(bool disposing)
        {
            IsDisposed = true;

            try
            {
                // Signal all to prevent livelocks
                _dataAvailable.Set();
                _spaceAvailable.Set();

                _dataAvailable.Close();
                _spaceAvailable.Close();
            }
            finally
            {
                base.Dispose(disposing);
            }
        }
        #endregion

Usage Example

Esempio n. 1
0
        public void TestDisposeBeforeComplete()
        {
            var data = new byte[_stream.BufferSize];

            _stream.Write(data);

            // Dispose on consumer thread after a short delay
            new Thread(() =>
            {
                Thread.Sleep(50);
                _stream.Dispose();
            }).Start();

            _stream.Invoking(x => x.Write(data)).ShouldThrow <ObjectDisposedException>();
        }