title: Do I need to create a new CancellationTokenSource(); after a task cancel?
body: <p>I have an application like this:</p>
  
  <p>I have an application where a portion of the code runs in a loop with a timer delay. At the start of the application I declare:</p>
  
  <pre><code>public static CancellationTokenSource tokenSource1 = new CancellationTokenSource();
  public static bool Timer1Running;
  </code></pre>
  
  <p>Here’s the looping area:</p>
  
  <pre><code> while (App.runCardTimer &amp;&amp; App.TimerSeconds &gt; 0)
   {
     App.Timer1Running = true;    
     …
     try
     {
        await Task.Delay(1000, App.tokenSource2.Token);
     }
     catch (TaskCanceledException ex) { }
     App.TimerSeconds--;       
     App.Timer1Running = false;    
   }   
  </code></pre>
  
  <p>My application responds to a click on the screen like this:</p>
  
  <pre><code>wordGrid.GestureRecognizers.Add(       
     new TapGestureRecognizer()      
     {          
        Command = new Command(() =&gt;          
        {          
           App.TimerSeconds = 0;          
           if (App.tokenSource1 != null &amp;&amp; App.Timer1Running)          
           {              
              App.tokenSource1.Cancel();          
           }       
        })    
     });
  </code></pre>
  
  <p>I am confused about the Cancellation Token. Once I issue the statement:</p>
  
  <pre><code>App.tokenSource1.Cancel(); 
  </code></pre>
  
  <p>Do I need to create a new Cancellation Token like this:</p>
  
  <pre><code>tokenSource1 = new CancellationTokenSource();
  </code></pre>
  
  <p>Or can I keep reusing?</p>