私のSystem.Threading.Taskに.Delay定義がありません。System.Threading.Taskに定義が含まれていません
public async Task<string> WaitAsynchronouslyAsync()
{
await Task.Delay(10000);
return "Finished";
}
私のSystem.Threading.Taskに.Delay定義がありません。System.Threading.Taskに定義が含まれていません
public async Task<string> WaitAsynchronouslyAsync()
{
await Task.Delay(10000);
return "Finished";
}
.NET 4を使用しています。当時はTask.Delay
はありませんでした。ただし、マイクロソフト によってライブラリがあり、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にただ更新することもできます。
TaskExも機能します。 –