एसिंक I/O के फायदों के साथ और अब यह कोड और लिखने के लिए काफी आसान है (Await और TAP विधियों का उपयोग करके) मैं सोच रहा हूं, अगर हमें डिफ़ॉल्ट रूप से एसिंक का उपयोग करना चाहिए और आवश्यकता होने पर सिंक का उपयोग करके केवल प्रदर्शन के लिए ट्यून करना चाहिए।क्या हमें डिफ़ॉल्ट रूप से async I/O का उपयोग करने के लिए स्विच करना चाहिए?
Async I/O कॉलिंग थ्रेड को मुक्त करता है और परिणाम की प्रतीक्षा करते समय कुछ और करने की अनुमति देता है। दूसरी ओर async I/O सिंक से थोड़ा धीमा है।
उत्तरदायी UI के लागू करने के लिए WinRT डिजाइनरों यह स्वीकार्य async-केवल तरीकों की पेशकश करने के लिए मिला।
AFAIK विंडोज फ़ाइल I/O आंतरिक रूप से async है। इस मूर्खता को देखते हुए यह मुझे स्पष्ट नहीं है, क्यों .NET में async फ़ाइल i/O सिंक की तुलना में धीमी होनी चाहिए।
मैं आम तौर पर सादगी और मजबूती का समर्थन करता हूं और केवल आवश्यक प्रदर्शन के लिए ट्यून करता हूं। अतीत में हमने कुछ सेवाओं को कॉल करने के अपवाद के साथ डिफ़ॉल्ट रूप से सिंक का उपयोग किया था और जहां फ़ोन जैसे प्लेटफॉर्म एसिंक लागू किए गए थे। हम शायद ही कभी async का उपयोग करके tuned।
[pfxteam ब्लॉग] (http://msdn.microsoft.com/en-us/magazine/jj133817.aspx) इस संदर्भ में कुछ रोचक जानकारी होते हैं: * "कृपया ध्यान दें कि हम के अतुल्यकालिक संस्करणों में नहीं जोड़ा था एपीआई, इस तरह के TextReader.Peek के रूप में है कि एक बहुत छोटे विवरण के स्तर को किया था। कारण यह है कि अतुल्यकालिक एपीआई भी कुछ भूमि के ऊपर जोड़ सकते हैं और हम गलती से गलत दिशा में बढ़ रहा से डेवलपर्स को रोकने के लिए करना चाहता था है। यह भी मतलब है कि हम विशेष रूप से तरीकों के लिए अतुल्यकालिक के संस्करण उपलब्ध कराने का फैसला किया बाइनरी रीडर या बाइनरीवाइटर पर .... * –