如果我使用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
来实现相同的目标?