async के साथ नवीनतम CTP5 का उपयोग करते हुए/इंतजार कीवर्ड, मैं कुछ कोड है, जो जाहिरा तौर पर संकलन नहीं कर सकते हैं लिखा है:सरल async विधि कैसे लिखें?
class Program
{
public class MyClass
{
async public Task<int> Test()
{
var result = await TaskEx.Run(() =>
{
Thread.Sleep(3000);
return 3;
});
return result;
}
}
static void Main(string[] args)
{
var myClass = new MyClass();
//The 'await' operator can only be used in a method or lambda marked with the 'async' modifier error ??!!
int result = await myClass.Test();
Console.ReadLine();
}
}
क्या 'की' का इंतजार है 'ऑपरेटर केवल एक विधि में इस्तेमाल किया जा सकता है या लैम्ब्डा के साथ चिह्नित वें कारण है 'async' संशोधक त्रुटि? "
आप * * 'async' के रूप में घोषणा कर सकते हैं' Main', और 'उस में कुछ भी * * अपने कार्यक्रम खत्म हो जाएगा await'ing – dlev
(यह मानते हुए आपके द्वारा चलाए जा कोई अन्य अग्रभूमि धागे की है।) दुह, मैंने सोचा कि त्रुटि मेरी टेस्ट विधि के अंदर है। विजुअल स्टूडियो को इस त्रुटि के साथ अधिक जानकारीपूर्ण होना चाहिए (जैसे "विधि मुख्य एसिंक होना चाहिए") – ghord
सी # 5 रिलीज में, यदि आप मुख्य को एसिंक के रूप में चिह्नित करते हैं, तो आपको एक त्रुटि मिलती है: "एक प्रविष्टि बिंदु को 'async' के साथ चिह्नित नहीं किया जा सकता 'संशोधक " – Anthony