// Testing public static async Task DoWorkAsync(PauseToken pause, CancellationToken token) { try { while (true) { token.ThrowIfCancellationRequested(); await Task.Delay(1000).ConfigureAwait(false); Console.WriteLine("Before await pause.WaitForResumeAsync()"); await pause.WaitForResumeAsync(); Console.WriteLine("After await pause.WaitForResumeAsync()"); } } catch (Exception e) { Console.WriteLine("Exception: {0}", e); throw; } }