我已经查看了Task和Timer类API,但未能找到有关如何安排Task
以备将来执行的信息。 使用Timer
类,我可以安排线程以备将来执行,但我需要安排Task
s。 Task
有.Delay(...)
方法,但不确定延迟是否类似于调度。调度任务以供将来执行
编辑(澄清):我想启动x分钟后任务。
我已经查看了Task和Timer类API,但未能找到有关如何安排Task
以备将来执行的信息。 使用Timer
类,我可以安排线程以备将来执行,但我需要安排Task
s。 Task
有.Delay(...)
方法,但不确定延迟是否类似于调度。调度任务以供将来执行
编辑(澄清):我想启动x分钟后任务。
您应该使用Task.Delay
(其内部是使用System.Threading.Timer
实现):
async Task Foo()
{
await Task.Delay(TimeSpan.FromMinutes(30));
// Do something
}
虽然 “已执行” 的延迟被使用there is no thread。当等待结束后,它将被安排执行。
我会使用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;
这取决于你正在尝试做的。你想在某段时间过后发生什么事?使用计时器。 “未来执行”究竟意味着什么? – 2014-10-30 14:54:29
是的,让我们说30分钟后,我想启动任务做一些操作。 – newprint 2014-10-30 14:55:34
'Task.Delay'内部使用'Timer',是的答案是你正在寻找'Timer'。在.net框架中有几个计时器,为您的场景选择合适的计时器。 – 2014-10-30 14:59:26