public override async Task <int> ReadAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken)
            {
                token.ThrowIfCancellationRequested();
                CancellationTokenSource cancellationTokenSource = CancellationTokenSource.CreateLinkedTokenSource(token, cancellationToken);
                int num = await ParentStream.ReadAsync(buffer, offset, count, cancellationTokenSource.Token);

                ReadCallback(num);
                return(num);
            }
            public override async Task <int> ReadAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken)
            {
                _token.ThrowIfCancellationRequested();
                var linked = CancellationTokenSource.CreateLinkedTokenSource(_token, cancellationToken);

                var readCount = await ParentStream.ReadAsync(buffer, offset, count, linked.Token);

                ReadCallback(readCount);
                return(readCount);
            }
示例#3
0
            public override async Task <int> ReadAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken)
            {
                token.ThrowIfCancellationRequested();
                var linked = CancellationTokenSource.CreateLinkedTokenSource(token, cancellationToken);

                int readCount;

                try {
                    readCount = await ParentStream.ReadAsync(buffer, offset, count, linked.Token);
                } catch (Exception e) {
                    if (exceptionMapper != null)
                    {
                        exceptionMapper(e);
                    }
                    throw e;
                }

                ReadCallback(readCount);
                return(readCount);
            }