<PackageReference Include="Nito.AsyncEx.Coordination" Version="5.1.2" />

Nito.AsyncEx.PauseToken

public struct PauseToken
A type that allows an operation to be cooperatively paused.
namespace Nito.AsyncEx { public struct PauseToken { public bool CanBePaused { get; } public bool IsPaused { get; } public Task WaitWhilePausedAsync(); public Task WaitWhilePausedAsync(CancellationToken token); public void WaitWhilePaused(); public void WaitWhilePaused(CancellationToken token); } }