public async Task Complete(CancellationToken ct) { if (!_isComplete) { _stack.Dispose(); if (_ms.Length > 0) { var data = _ms.GetBuffer(); await _stream.WriteAsync(data, 0, (int)_ms.Length, ct).ConfigureAwait(false); _ms.SetLength(0); } await _stream.Complete(ct).ConfigureAwait(false); _isComplete = true; } }