public void Dispose() { _isDisposed = true; _timer?.Dispose(); try { _requests.Writer.TryComplete(); _task.GetAwaiter().GetResult(); } catch (Exception ex) { _errorCallback(ex); } finally { if (_size > 0) { Send(_memory, _size); } var memory = Interlocked.Exchange(ref _memory, null); if (memory != null) { ArrayPool <byte> .Shared.Return(memory); } _output.Finish(); } }
public void Dispose() { _isDisposed = true; _timer?.Dispose(); _requests.Writer.TryComplete(); Flush(); _output.Finish(); _cancellationTokenSource.Cancel(); _cancellationTokenSource.Dispose(); _task.Dispose(); }