/// <summary>
        ///     Try to dequeue a record
        /// </summary>
        /// <param name="buffer">Record dequeued</param>
        /// <returns><c>true</c> if there was a record available; otherwise <c>false</c></returns>
        public bool TryDequeue(out byte[] buffer)
        {
            if (_readFile.TryDequeue(out buffer))
            {
                return(true);
            }

            if (!TryOpenNextReadFile())
            {
                return(false);
            }

            return(_readFile.TryDequeue(out buffer));
        }
示例#2
0
        /// <summary>
        ///     Try to dequeue a record
        /// </summary>
        /// <param name="buffer">Record dequeued</param>
        /// <returns><c>true</c> if there was a record available; otherwise <c>false</c></returns>
        public bool TryDequeue(out byte[] buffer)
        {
            if (_readFile.TryDequeue(out buffer))
            {
                Interlocked.Decrement(ref _count);
                return(true);
            }

            if (!TryOpenNextReadFile())
            {
                return(false);
            }

            var success = _readFile.TryDequeue(out buffer);

            if (success)
            {
                Interlocked.Decrement(ref _count);
            }

            return(success);
        }