दिलचस्प पोस्ट
टेक्स्टव्यू फिट करने के लिए टेक्स्ट फ़ॉन्ट आकार को कैसे समायोजित करें कोनेर एनजी-व्यू / राउटिंग फोनगैप में काम नहीं कर रहा है टेम्पलेट्स में एक त्रिगुट जावास्क्रिप्ट स्ट्रिंग में सिंगल व्हाइटस्पेस के साथ कई व्हाइटस्टेस बदलें स्ट्रिंग के nth घटना के सूचकांक प्राप्त करें? प्रत्येक एनिमेटेड जीआईएफ फ़्रेम को अलग-अलग बफ़ेदार छवि में कनवर्ट करें ईवेंट हैंडलर के बाद जोड़े जाने वाले तत्वों के लिए jQuery.on () काम करता है? htaccess को कोणीय रूट के लिए रीडायरेक्ट करता है निकटतम 10 अंतराल के लिए गोल मान के लिए नेट एल्गोरिथ्म में निर्मित मैं कैसे जाँच सकता हूँ कि मेरे पास इसका इस्तेमाल करने से पहले पर्ल मॉड्यूल है? अल्पविराम को स्पष्ट तरीका एक सूची (जावा) को सीमांकित करें? WCF ChannelFactory बनाम प्रॉक्सी बनाम Linq से Sql में नल योग्य प्रकार की तुलना करें 302 और 307 रीडायरेक्ट में अंतर क्या है? HTML चपलता पैक – सामग्री को निकाले बिना अवांछित टैग को निकाल रहा है?

WCF सेवा से async विधियों को कॉल करना

मैं एक WCF सेवा से अतुल्यकालिक तरीकों को कॉल करना चाहता हूं, जैसे कुछ:

[ServiceContract] interface IService { [OperationContract] int SomeMethod(int data); } int SomeMethod(int data) { var query = ... build LINQ query; var response = await query.ToListAsync(); return response.Length; } 

मैं async को IService इंटरफ़ेस या SomeMethod विधि में जोड़ना नहीं चाहता असिंक्रोनस विधियों का उपयोग करना एक आंतरिक समस्या है जो इंटरफ़ेस में दिखाई नहीं देनी चाहिए।

मैं उसे कैसे कर सकता हूँ?

स्पष्टीकरण:

मेरी समस्या यहां एक गैर- async विधि में await रही है मैं सेवा अनुबंध को बदलना नहीं चाहता (क्लाइंट को यह पता नहीं है कि BeginSomeMethod क्या होता है), और मैं विधि को BeginSomeMethod विधि और EndSomeMethod में विभाजित नहीं करना चाहता। मुझे एक ऐसा तरीका चाहिए जो आंतरिक रूप से await करता है।

वेब के समाधान से एकत्रित समाधान "WCF सेवा से async विधियों को कॉल करना"

क्या ग्राहक सिंक या एसिंक कोड का उपयोग कर रहा है, ग्राहक के लिए कोई फर्क नहीं पड़ता। क्लाइंट और सर्वर को एक अच्छी तरह से निर्दिष्ट तार-प्रोटोकॉल (अक्सर SOAP) से अलग किया जाता है। SOAP में एसिंक्रोनस पूर्णता की कोई धारणा नहीं है।

आपके पास एक सिंक सर्वर और एक async क्लाइंट हो सकता है, या इसके विपरीत। क्लाइंट भी यह नहीं पता लगा सकता है कि सर्वर सिंक या एसिंक है या नहीं। यह एक कार्यान्वयन विवरण है सर्वर एक कलाई घड़ी चलने वाला लिनक्स हो सकता है और आप अभी भी नहीं बता सकते

आपके द्वारा उपयोग किए जाने वाले IO की शैली एक कार्यान्वयन विवरण है और नेटवर्क पर जाने वाले बाइट्स को प्रभावित नहीं करती है।

तो आप क्या पसंद करते हैं उठाओ क्लाइंट अभी भी सर्वर तक पहुंचने के लिए async Io का उपयोग कर सकते हैं।

मुझे यकीन नहीं है कि लोगों के लिए यह इतना आश्चर्यचकित क्यों है अन्य संदर्भों में यह बहुत सहज लगता है: आपके पास एक अतुल्यकालिक TCP सर्वर और एक तुल्यकालिक क्लाइंट हो सकता है। मैं new WebClient().DownloadString(url) कह सकता हूं new WebClient().DownloadString(url) और एक स्ट्रिंग को एक वेब-सर्वर से सिंक्रोनस डाउनलोड कर रहा है जो एक अतुल्यकालिक तरीके से लागू किया गया है। मैं यह भी नहीं बता सकता कि कौन सा सर्वर सॉफ़्टवेयर चल रहा है

जब आप डब्लूसीएफ कॉल करते हैं तो वायरल पर क्या होता है यह देखने के लिए फिडलर का उपयोग करें। तुल्यकालिक या अतुल्यकालिक कॉल की कोई धारणा नहीं है।

हुड के तहत, जब आप एक सेवा को एसिंक्रोनस से जोड़ते हैं, तो डब्लूसीएफ क्लाइंट लाइब्रेरी टीसीपी सॉकेट्स का उपयोग एसिंक्रोनस तरीके से करते हैं। जब आप तुल्यकालिक रूप से आह्वान करते हैं, तो अवरुद्ध कॉल के साथ टीसीपी सॉकेट्स का उपयोग किया जाता है। यह पूरे फर्क है

डब्ल्यूसीएफ उत्पन्न क्लाइंट को तुल्यकालिक विधियों के अतिरिक्त अतुल्यकालिक तरीके के लिए बनाया जा सकता है। UI में "एसिंक्रोनस ऑपरेशंस जेनरेट करें" विकल्प को चुनें अब आपके पास दोनों संस्करण हैं दोनों पूरी तरह कार्यात्मक

यहां बताया गया है कि आप एक प्रयोग के साथ इस बारे में अपने आप को कैसे समझ सकते हैं: एक सिंक सर्वर लिखें, और उसे समान नेट क्लाइंट से सिंक और एसिंक दोनों कहते हैं। अब एक दूसरे सर्वर को एसिंक्रोनस (किसी भी स्टाइल में आप की तरह) लिखें और इसे कॉल करने के लिए उसी क्लाइंट कोड का उपयोग करें।

Task और IAsyncResult एसएपी पर क्रमबद्ध नहीं हैं इसलिए यह संभवतः ऐसा मामला नहीं हो सकता है कि कोई Task क्लाइंट को प्रेषित किया जाता है।