调度任务以供将来执行

我查看了Task和Timer类API,但无法找到有关如何安排Task以供将来执行的信息。 使用Timer类,我可以调度线程以供将来执行,但我需要安排TaskTask.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;