नेट BeginInvoke बस एक अलग थ्रेड में निष्पादन स्थगित। यह हमेशा एक तुल्यकालिक कॉल से धीमा होगा और अतिरिक्त संसाधनों का उपभोग करेगा। इसका उपयोग करने का एकमात्र कारण कॉलर संदर्भ को अन्य परिचालनों में आगे बढ़ने के लिए मुक्त करना होगा (उदाहरण के लिए क्लाइंट को HTTP अनुरोध का परिणाम लौटाएं)।
एसक्लक्लिएंट एसिंक्रोनस विधियों, जब AsynchronousProcessing कनेक्शन पर संपत्ति सत्य पर सेट की गई है और SqlCommand के BeginExecute विधियों का उपयोग किया जाता है, वास्तव में असीमित हैं।SQL कमांड को नेटवर्क संचार चैनल पर पोस्ट किया गया है और सर्वर द्वारा परिणाम लौटाए जाने पर पूरा होने का आह्वान किया जाता है।
एक विश्वसनीयता बिंदु से हालांकि हालांकि इनमें से कोई भी विधि उपयोगी नहीं है। वे कॉल क्लाइंट पूरा होने तक चारों ओर रहने के लिए क्लाइंट प्रक्रिया पर भरोसा करते हैं, अन्यथा SQL सर्वर क्लाइंट डिस्कनेक्ट और प्रसंस्करण छोड़ देगा, किसी भी मध्यवर्ती काम को वापस रोलिंग करेगा। एक एएसपी एप्लिकेशन पर विचार करें जो एक HTTP अनुरोध स्वीकार करता है, एक 'एसिंक्रोनस' भुगतान प्रसंस्करण प्रस्तुत करता है और एक प्रतिक्रिया देता है। गारंटी देने का कोई तरीका नहीं है कि सबमिट किया गया कार्य वास्तव में होगा।
ऐसी परिस्थितियों के लिए जब प्रसंस्करण की विश्वसनीयता की गारंटी होती है तो समाधान सर्वर पर काम को कतारबद्ध करता है, इसे प्रतिबद्ध करता है और फिर आगे बढ़ता है, SQL सर्वर की अपनी असीमित प्रक्रिया क्षमताओं पर निर्भर करता है। यह एक तरीका है जो क्लाइंट डिस्कनेक्ट्स, एएसपी प्रोसेस 'रीसाइक्लिंग', एसक्यूएल सर्वर मिररिंग या क्लस्टरिंग फेलओवर, हार्डवेयर आपदा रिकवरी, जो कुछ भी आप इसे फेंक सकते हैं, की प्रस्तुति पर भी प्रोसेसिंग की गारंटी देता है, क्योंकि जमा करने का एक लेनदेन टिकाऊ तरीका है असीमित प्रक्रिया अनुरोध। उदाहरण के लिए Asynchronous Procedure Execution देखें।
स्रोत
2009-11-14 05:31:55
मुझे लगता है कि वह अर्थ है "एक डेटा प्रदाताओं का उपयोग क्यों 'BeginExecute ___()/EndExecute ____()' बस एक प्रतिनिधि –
@Joel में उन्हें लपेटकर बनाम:।। हम्म .. शायद आप ठीक कह रहे हैं –