C# 5和异步定时器

13

有没有新的计时器API可以让我这样做?

await timer.wait(500);

基本上,要睡眠 X 毫秒,然后恢复执行函数的其余部分。

2个回答

21

尝试使用

await Task.Delay(500);

3
正如你所预期的那样,它还有重载方法,以便在进行UI操作并需要支持取消时可以传入一个CancellationToken。 :) http://msdn.microsoft.com/en-us/library/hh160377(v=vs.110).aspx - James Manning

10

我有一个帮助函数,它非常好用,可以提高代码的可读性:

public static Task Seconds(this int seconds)
{
    return Task.Delay(new TimeSpan(0,0,seconds));
}

这使我能够使用类似于

await 5.Seconds();

你可以很容易地创建类似的扩展方法来处理毫秒、分钟、小时或其他单位。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接