我查看过Task和Timer类API,但找不到有关如何安排Task
以供日后执行的信息。
使用Timer
类,我可以为将来的执行安排线程,但我需要安排Task
。
Task
有.Delay(...)
个方法,但不确定延迟与计划类似。
编辑(澄清):我想在x分钟后启动任务。
答案 0 :(得分:7)
您应该使用Task.Delay
(内部使用System.Threading.Timer
实现):
async Task Foo()
{
await Task.Delay(TimeSpan.FromMinutes(30));
// Do something
}
延迟被“执行”there is no thread被使用。当等待在计划执行之后结束工作时。
答案 1 :(得分:2)
我会改用this 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;