示例#1
0
        internal int Read(byte[] buffer)
        {
            if (Length - buffer.Length <= CriticalLength)
            {
                if (innerStream == null)
                {
                    if (DataRequest != null)
                    {
                        DataRequest(this, null);
                    }
                }
                else
                {
                    int minimumLength = CriticalLength - (int)Length + buffer.Length;

                    byte[] data            = new byte[minimumLength];
                    int    availableLength = innerStream.Read(data, 0, minimumLength);
                    queue.Write(data, 0, availableLength);
                }
            }

            int available = queue.Read(buffer, 0, buffer.Length);

            readByte += buffer.Length;

            return(available);
        }
示例#2
0
 public override int Read(byte[] buffer, int offset, int count)
 {
     return(queue.Read(buffer, offset, count));
 }