我正在编写一个Windows服务并使用Timer每分钟调用一个方法。 我有以下代码
protected override void OnStart(string[] args)
{
// Set up a timer to trigger every minute.
_timer = new System.Timers.Timer();
_timer.Interval = 60000; // 60 seconds
_timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
_timer.Start();
}
private void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
StartProcessingWorkFlow();
}
但是我想用任务并行库替换计时器?
我读了Task.Delay()
,但似乎只工作了一次
我想让代码每1分钟调用一次,直到它停止。
答案 0 :(得分:0)
可以在循环中使用Task完成:
while(true){
await Task.Delay(60000);
StartProcessingWorkFlow();
}
但我不认为这是最好的方法。尝试寻找Rx.net