public WebRequestStream(Stream stream, CancellationToken cancellationToken) { this.stream = stream; buffer = new byte [BufferSize]; cts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken); openTcs = new TaskCompletionSource <object> (); cts.Token.Register(() => Close()); CFStream.CreateBoundPair(out readStream, out writeStream, BufferSize); }