У меня нет. Определить определение на моей System.Threading.Task.System.Threading.Task не содержит определения
public async Task<string> WaitAsynchronouslyAsync()
{
await Task.Delay(10000);
return "Finished";
}
У меня нет. Определить определение на моей System.Threading.Task.System.Threading.Task не содержит определения
public async Task<string> WaitAsynchronouslyAsync()
{
await Task.Delay(10000);
return "Finished";
}
Вы используете .NET 4. Тогда не было Task.Delay
. Тем не менее, существовала библиотека от Microsoft под названием Microsoft.Bcl.Async, и она предоставляет альтернативу: TaskEx.Delay
.
Он будет использоваться как это:
public async Task<string> WaitAsynchronouslyAsync()
{
await TaskEx.Delay(10000);
return "Finished";
}
Ваши другие варианты либо обновления для .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;
}
(взято из ответа Servy в here) ,
Если я правильно интерпретирую вопрос, это звучит так, как будто вы просто используете .NET 4.0; Task.Delay
был добавлен в .NET 4.5. Вы можете добавить свою собственную реализацию, используя что-то вроде обратного вызова системного таймера и TaskCompletionSource
, или: просто обновите до .NET 4.5
TaskEx также работает;) –