2012-10-01 10 views
7

क्या मुझे हर समय (सी # 5) पर एसिंक/प्रतीक्षा करना चाहिए जब मुझे किसी विधि के परिणाम की आवश्यकता नहीं होती है (कार्य <>) या मुझे एक-ऑफ विधि (शून्य) को आग लगाना है?मुझे एसिंक/प्रतीक्षा का कब उपयोग करना चाहिए और कब नहीं?

क्या मुझे इसे सभी मामलों में उपयोग करना चाहिए जब मैंने कार्य कक्षा का उपयोग सी # 4 में किया था और बैकग्राउड थ्रेड पर काम धक्का दिया था?

क्या मुझे केवल उन मामलों में उपयोग करना चाहिए जब मैंने एसिंक्रोनस .Net Framework विधियों का उपयोग किया था?

उलझन में।

मैं मूल रूप से एक साधारण स्पष्टीकरण की तलाश में हूं जिसमें मुझे इंतजार/एसिंक का उपयोग करना चाहिए और जब नहीं।

उत्तर

8

async/await का उपयोग तब किया जा सकता है जब आपके पास असीमित परिचालन हो। कई परिचालन स्वाभाविक रूप से असीमित होते हैं (जैसे I/O); मैं उन सभी के लिए async की अनुशंसा करता हूं। अन्य परिचालन स्वाभाविक रूप से तुल्यकालिक होते हैं (जैसे गणना); मैं उन लोगों के लिए तुल्यकालिक तरीकों का उपयोग करने की सलाह देते हैं।

यदि आप सिंक्रोनस कोड को असीमित रूप से चलाने की आवश्यकता है तो आप Task.Runasync के साथ पृष्ठभूमि कार्य के लिए उपयोग कर सकते हैं। मैं अपने ब्लॉग पर समझाता हूं कि यह better than BackgroundWorker and asynchronous delegates क्यों है।

आप एसिंक्रोनस प्रोसेसिंग के अन्य रूपों को बदलने के लिए async का भी उपयोग कर सकते हैं, उदाहरण के लिए, IAsyncResult शैली।

async का उपयोग किसी भी परिस्थिति में करें जहां आपके पास एसिंक्रोनस ऑपरेशन है।

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

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