2012-04-05 29 views
13

के बीच क्या अंतर है मैं मेट्रो ऐप लिख रहा हूं।कार्य <> और IAsyncOperation <>

यह काम करता है:

HttpClient client = new HttpClient(); 
    var bytes = await client.GetByteArrayAsync(new Uri("www.microsoft.com")); 

यह नहीं करता है:

var folder = Windows.Storage.ApplicationData.Current.LocalFolder; 
    var file = await folder.GetFileAsync("text.txt"); 

पहले एक रिटर्न एक टास्क <>, दूसरा एक वापसी एक IAsyncOperation <>

क्या है अंतर? दो अलग-अलग प्रकार क्यों हैं? मैं दूसरा नमूना कैसे ठीक कर सकता हूं?

+1

आपका क्या मतलब है, दूसरा एक काम नहीं करता: इन तरीकों के साथ IAsyncOperation उदाहरणों का उपयोग करने के लिए आपको इस तरह के रूप StartAsTask विस्तार विधि, बुलाना चाहिए? यह क्या करता है? – svick

उत्तर

19

IAsyncOperation एक मेट्रो एसिंक्रोनस ऑपरेशन है। आप awaitIAsyncOperation कर सकते हैं।

हालांकि, आप IAsyncOperationTask.WhenAll या Task.WhenAny के साथ उपयोग नहीं कर सकते हैं।

var folder = Windows.Storage.ApplicationData.Current.LocalFolder; 
var fileTask = folder.GetFileAsync("text.txt").StartAsTask(); 
+1

StartAsTask() एक्सटेंशन विधि परिभाषित क्या नामस्थान है? –

+8

'StartAsTask'' 'AsTask' में बदल गया है, जो' System.Runtime.WindowsRuntime'] में है (http://msdn.microsoft.com/en-us/library/hh779747 (v = vs.110) .aspx)। –

संबंधित मुद्दे