ThreadPoolTimer和停止/执行工作/恢复模式

时间:2018-03-08 02:29:09

标签: c# timer

如果我使用ThreadPoolTimer,则典型语法为

ThreadPoolTimer PeriodicTimer = ThreadPoolTimer.CreatePeriodicTimer((source) =>
{
    //
    // TODO: Work
    //
}, TimeSpan.FromSeconds(60));

如果我使用System.Timer,则典型的方法是

Timer timer = new Timer(1000);

static void Main()
{
  timer.Elapsed += async ( sender, e ) => await HandleTimer();
  timer.Start();
}

private static Task HandleTimer()
{
  try
  {
     timer.Stop();
    //
    // TODO: Work
    //
  }
  finally
  {
     timer.Start();
  }
}

如果我的工作时间超过计时器的间隔时间,我可以避免洪水。

如何使用ThreadPoolTimer来实现相同的目标?

0 个答案:

没有答案