title: Animate label without resetting timeout duration
body: <p>I have the following method to animate a label for 20 seconds.</p>
  <pre><code>    public class BlinkTriggerBehavior : Behavior&lt;Label&gt;
  {
      CancellationTokenSource tokenSource = new CancellationTokenSource();
      protected override void OnAttachedTo(Label bindable)
      {
          base.OnAttachedTo(bindable);
          bindable.PropertyChanged += Animate; // binding property changed event
      }
      private async void Animate(object obj, PropertyChangedEventArgs e)
      {
          CancellationTokenSource cancellationTokenSource = new CancellationTokenSource();
          if (e.PropertyName == &quot;ClassId&quot;)
          {
              VisualElement sender = obj as VisualElement;
              var parentAnimation = new Animation();
              var scaleUpAnimation = new Animation(d =&gt; sender.Scale = d, 1, 1.2, Easing.SpringIn);
              var fadeOutAnimation = new Animation(d =&gt; sender.Opacity = d, 1, 0, Easing.Linear);
              var scaleDownAnimation = new Animation(d =&gt; sender.Scale = d, 1.2, 1, Easing.SpringOut);
              var fadeInAnimation = new Animation(d =&gt; sender.Opacity = d, 0, 1, Easing.Linear);
              parentAnimation.Add(0, 0.5, fadeOutAnimation);
              parentAnimation.Add(0, 0.5, scaleUpAnimation);
              parentAnimation.Add(0.5, 1, scaleDownAnimation);
              parentAnimation.Add(0.5, 1, fadeInAnimation);
              parentAnimation.Commit(sender, &quot;BlinkingVisualElement&quot;, 16, 800, repeat: () =&gt; true);
              await Task.Delay(20000);
              parentAnimation.Commit(sender, &quot;BlinkingVisualElement&quot;, 16, 800, repeat: () =&gt; false);
          }
  
      }
      protected override void OnDetachingFrom(Label bindable)
      {
          base.OnDetachingFrom(bindable);
          bindable.PropertyChanged -= Animate;
      }
  }
  </code></pre>
  <p>This method can get called multiple times within 20 seconds. It works fine and animates the label for a full 20 seconds if called one time and wait for 20 seconds before firing the second call. I want it to animate 20 seconds whenever this method is fired.</p>
  <p>Now what is happening</p>
  <p>I called the method the first time on</p>
  <p>9:00:00 AM</p>
  <p>It animates till 9:00:20</p>
  <p>If I call the method the second time on</p>
  <p>9:00:12 AM</p>
  <p>It still animates till 9:00:20 only(8 seconds only). I want it to animate till 9:00:32</p>
  <p>Basically I want to reset the timer and show full 20 seconds animation whenever this method is called.</p>