/// <inheritdoc /> public void Dispose() { if (generatorTask == null) { return; } #endif // Notify the cancellation. if (lastCombinedCancellationTokenSource != taskCompletionTokenSource) { lastCombinedCancellationTokenSource.Dispose(); } taskCompletionTokenSource.Cancel(); taskCompletionTokenSource.Dispose(); // Do cleanup. buffer.Terminate(); lastCombinedCancellationTokenSource = null; taskCompletionTokenSource = null; lastMoveNextCancellationToken = CancellationToken.None; buffer = null; generatorTask = null; #if CLR_FEATURE_ASYNC_STREAM return(new ValueTask()); #endif }
/// <inheritdoc /> public void Dispose() { if (generatorTask == null) { return; } // Notify the cancellation. if (lastCombinedCancellationTokenSource != taskCompletionTokenSource) { lastCombinedCancellationTokenSource.Dispose(); } taskCompletionTokenSource.Cancel(); taskCompletionTokenSource.Dispose(); // Do cleanup. buffer.Terminate(); lastCombinedCancellationTokenSource = null; taskCompletionTokenSource = null; lastMoveNextCancellationToken = CancellationToken.None; buffer = null; generatorTask = null; }