title: ThreadPoolTimer and stop/do work/resume pattern
body: <p>If I use <code>ThreadPoolTimer</code> the typical syntax is </p>
  
  <pre><code>ThreadPoolTimer PeriodicTimer = ThreadPoolTimer.CreatePeriodicTimer((source) =&gt;
  {
      //
      // TODO: Work
      //
  }, TimeSpan.FromSeconds(60));
  </code></pre>
  
  <p>If I use <code>System.Timer</code> the typical way is</p>
  
  <pre><code>Timer timer = new Timer(1000);
  
  static void Main()
  {
    timer.Elapsed += async ( sender, e ) =&gt; await HandleTimer();
    timer.Start();
  }
  
  private static Task HandleTimer()
  {
    try
    {
       timer.Stop();
      //
      // TODO: Work
      //
    }
    finally
    {
       timer.Start();
    }
  }
  </code></pre>
  
  <p>So I can avoid the flood if my job takes longer than timer's interval to complete.</p>
  
  <p>What shall I do to achieve the same goal by using <code>ThreadPoolTimer</code>?</p>