मुझे Difference between […]Async and Begin[…] .net asynchronous APIs प्रश्न मिला लेकिन this answer मुझे थोड़ा उलझन में डाल दिया।सॉकेट प्रोग्रामिंग पर एपीएम, ईएपी और टीपीएल
इन पैटर्न के बारे में बात करते हुए स्टीफन ने कहा:
अधिकांश * Async तरीकों (इसी * पूरे घटनाओं के साथ) घटना-आधारित अतुल्यकालिक पैटर्न का उपयोग कर रहे हैं। पुराना (लेकिन अभी भी पूरी तरह से वैध) शुरू * और अंत * एक पैटर्न है जिसे असीमित प्रोग्रामिंग मॉडल कहा जाता है।
सॉकेट क्लास इस नियम का अपवाद है; इसकी * Async विधियों में कोई संबंधित घटना नहीं है; यह अनिवार्य रूप से अत्यधिक स्मृति आवंटन से बचने के लिए एपीएम किया जाता है।
मुझे इसे उपयोग करने के रूप में मिलता है * कम से कम जब सॉकेट की बात आती है तो Async विधियां अधिक कुशल होती हैं।
हालांकि, दोनों एपीएम और EBAP टास्क समानांतर लाइब्रेरी के आधार पर एक और अधिक लचीला दृष्टिकोण के साथ प्रतिस्थापित किया जा रहा है: लेकिन फिर वह टास्क समानांतर लाइब्रेरी का उल्लेख किया। चूंकि टीपीएल आसानी से एपीएम लपेट सकता है, इसलिए पुराने वर्गों को सीधे अपडेट नहीं किया जाएगा; पुरानी एपीएम विधियों के लिए कार्य समकक्ष प्रदान करने के लिए विस्तार विधियों का उपयोग किया जाता है।
मैं MSDN पर TPL and Traditional .NET Asynchronous Programming पाया, मैं TPL की मूल बातें पता है, कार्य, रद्दीकरण, निरंतरता, आदि बनाने लेकिन मैं अभी भी इन को समझने में विफल:
क्या अतुल्यकालिक प्रोग्रामिंग मॉडल के फायदे हैं (एपीएम) और एक दूसरे की तुलना में घटना आधारित असीमित पैटर्न (ईएपी)? टीपीएल आसानी से एपीएम को लपेट सकता है का मतलब है कि एपीएम और ईएपी टीपीएल के साथ प्रतिस्थापित किया जा रहा है?
और सबसे महत्वपूर्ण बात: मुझे सॉकेट प्रोग्रामिंग में किस का उपयोग करना चाहिए;
- एपीएम?
- ईएपी?
- एपीएम या ईएपी एक कार्य द्वारा लिपटे?
- कार्य में सॉकेट वर्ग के अवरुद्ध तरीकों का उपयोग करके टीपीएल?
- अन्य?
इसे देखें: http://stackoverflow.com/questions/5834755/turning-async-socket-parallel-and-not-only-concurrent- इन-गहन-आवेदक –