C#5和异步​​计时器

jz8*_*z87 13 .net c# timer async-await c#-5.0

是否有新的Timer API允许我这样做?

await timer.wait(500);
Run Code Online (Sandbox Code Playgroud)

基本上,要睡眠X ms然后继续执行其余的功能

Ser*_*-Tm 21

试试用

await Task.Delay(500);
Run Code Online (Sandbox Code Playgroud)

  • 正如您所期望的那样,如果您处于UI操作并且需要支持取消,它也会传递CancellationToken.:) http://msdn.microsoft.com/en-us/library/hh160377(v=vs.110).aspx (3认同)

cap*_*aig 10

我有一个我非常喜欢的帮手,只是为了增加一些可读性:

public static Task Seconds(this int seconds)
{
    return Task.Delay(new TimeSpan(0,0,seconds));
}
Run Code Online (Sandbox Code Playgroud)

这允许我使用类似的东西

await 5.Seconds();
Run Code Online (Sandbox Code Playgroud)

您可以轻松地制作类似于毫秒,分钟,小时等的扩展方法.