नहीं हो सकती है। मेरे सिस्टम पर डेली परिभाषा है। थ्रेडिंग। कार्य।सिस्टम। थ्रेडिंग। कार्य में परिभाषा
public async Task<string> WaitAsynchronouslyAsync()
{
await Task.Delay(10000);
return "Finished";
}
नहीं हो सकती है। मेरे सिस्टम पर डेली परिभाषा है। थ्रेडिंग। कार्य।सिस्टम। थ्रेडिंग। कार्य में परिभाषा
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 4.5
टास्कएक्स भी काम करता है;) –