调度任务以供将来执行
我查看了Task和Timer类API,但无法找到有关如何安排Task
以供将来执行的信息。 使用Timer
类,我可以调度线程以供将来执行,但我需要安排Task
。 Task
有.Delay(...)
方法,但不确定延迟与调度类似。
编辑(澄清):我想在x分钟后启动任务。
您应该使用Task.Delay
(内部使用System.Threading.Timer
实现):
async Task Foo() { await Task.Delay(TimeSpan.FromMinutes(30)); // Do something }
延迟“执行”时,没有使用线程 。 当等待在计划执行之后结束工作时。
我会使用这个 Timer(System.Timers.Timer)代替。 它使用起来有点简单。 将间隔设置为30并启动计时器,确保已过去的事件调用您想要发生的方法。 如果你只希望它发生一次而不是每三十分钟,你可以在之后停止它。
来自链接的MSDN页面的代码示例:
// Create a timer with a two second interval. aTimer = new System.Timers.Timer(2000); // Hook up the Elapsed event for the timer. aTimer.Elapsed += OnTimedEvent; aTimer.Enabled = true;