title: Check if CancellationToken has been cancelled
body: <p>I've created a little demo project to help me understand how I can use Cancellation Tokens. I understand that you cancel a token and check if a cancellation has been requested, but is there a way that I can check whether the cancellation has been realised? In my example below, I don't want to run Work() again until DoWork() has finished running.</p>
  
  <pre><code>public class Program
  {
      public static CancellationTokenSource tokenSource;
  
      private static void Main(string[] args)
      {
          while (true)
          {
              Work();
          }
      }
  
      public static async void Work()
      {
          tokenSource = new CancellationTokenSource();
          Console.WriteLine("Press any key to START doing work");
          Console.ReadLine();
          Console.WriteLine("Press any key to STOP doing work");
          DoWork(tokenSource.Token);
          Console.ReadLine();
          Console.WriteLine("Stopping...");
          tokenSource.Cancel();
      }
  
      public static async void DoWork(CancellationToken cancelToken)
      {
          while (true)
          {
              Console.WriteLine("Working...");
              await Task.Run(() =&gt;
              {
                  Thread.Sleep(1500);
              });
  
              if (cancelToken.IsCancellationRequested)
              {
                  Console.WriteLine("Work Cancelled!");
  
                  return;
              }
          }
      }
  }
  </code></pre>