我的System.Threading.Task上没有.Delay定义.
public async Task<string> WaitAsynchronouslyAsync()
{
await Task.Delay(10000);
return "Finished";
}
Run Code Online (Sandbox Code Playgroud)
It'*_*ie. 31
你正在使用.NET 4.那时,没有Task.Delay.但是,微软有一个名为Microsoft.Bcl.Async的库,它提供了另一种选择:TaskEx.Delay.
它会像这样使用:
public async Task<string> WaitAsynchronouslyAsync()
{
await TaskEx.Delay(10000);
return "Finished";
}
Run Code Online (Sandbox Code Playgroud)
您的其他选择是更新到.NET 4.5,或者只是自己实现它:
public static Task Delay(double milliseconds)
{
var tcs = new TaskCompletionSource<bool>();
System.Timers.Timer timer = new System.Timers.Timer();
timer.Elapsed += (o, e) => tcs.TrySetResult(true);
timer.Interval = milliseconds;
timer.AutoReset = false;
timer.Start();
return tcs.Task;
}
Run Code Online (Sandbox Code Playgroud)
(从Servy的答案采取在这里).