asynchronous - Async FromBeginEnd interface -


मैंने सी # async अंतरफलक का पालन किया है:

  x.BeginOperation (a: sting, b : स्ट्रिंग, सी: स्ट्रिंग, डी: स्ट्रिंग, जी: स्ट्रिंग,? क्यू: स्ट्रिंग): आईएएसआईएनसीआरसल्ट x.एन्डऑपरेशन (परिणाम: आईएएसआईएनसीआरसल्ट): आईएनइन्मेरेबल & lt; स्ट्रिंग & gt;   

मैं इसे अपने async वर्कफ़्लो में उपयोग करना चाहूंगा और Async & lt; 'T & gt; ऑब्जेक्ट प्राप्त करूँगा जो गणना का प्रतिनिधित्व करेगी।

मुझे लगता है कि Async.FromBeginEnd जाने का रास्ता है, लेकिन मेरे पास शुरू / अंत ऑपरेशन पद्धति को पास करने के लिए कठिन समय है। शुरुआती ऑपरेशन के पास बहुत सारे तर्क हैं, साथ ही वैकल्पिक एक (प्लस मैं वास्तव में अपने दिमाग को एसिंक कॉलबैक * ओबीजी के हस्ताक्षर के आसपास लपेटने का प्रबंधन नहीं करता है)।

इस इंटरफ़ेस से एसिंक को पाने का सही तरीका क्या है धन्यवाद।

यह मानते हुए कि आपके इंटरफ़ेस को ऐसा कुछ घोषित किया गया है:

  प्रकार IMyInterface = सारणी का सदस्य शुरू करेंऑपरेशन: (स्ट्रिंग * स्ट्रिंग * स्ट्रिंग * स्ट्रिंग * स्ट्रिंग * स्ट्रिंग विकल्प) - & gt; IAsyncResult अमूर्त सदस्य एंडऑपरेशन: IAsyncResult - & gt; स्ट्रिंग सीक   

आपको इस तरह से एक छोटी सहायक फ़ंक्शन का उपयोग करके एक async & lt; 'T & gt; बनाने में सक्षम होना चाहिए:

  एएससिंक (एक्स: आईएमआईइंटरफेस) = चलो शुरू करेंएक्शन (कॉलबैक, मान: ओबीजी) = मैच वैल्यू के साथ | : (स्ट्रिंग * स्ट्रिंग * स्ट्रिंग * स्ट्रिंग * स्ट्रिंग * स्ट्रिंग विकल्प) v - & gt; एक्स.बीनऑपरेशन वी | _ - & gt; असीमित मूल्य "असीन्स्की फ्रॉमबैजिनएन्द (शुरूअक्शन, एक्सएडऑपरेशन)   

भीतरी आरंभ एक्शन सहायक फ़ंक्शन में हस्ताक्षर है 'a * obj - & gt ; IAsyncResult , जिसका अर्थ है कि यह सामान्य प्रकार 'a (सी # में इसे आमतौर पर T के रूप में चिह्नित किया जाएगा और एक सिस्टम के रूप में चिह्नित किया जाता है) का एक ट्यूपल लेता है आरंभ करें , और IAsyncResult उदाहरण

Async.FromBeginEnd के लिए, यह beginAction <के लिए आवश्यक हस्ताक्षर < / कोड>।

इंटरफ़ेस का एंडऑपरेशन विधि में पहले से सही हस्ताक्षर हैं, इसलिए इसे असमापित में पास किया जा सकता है।

> एएसिंक फ़ंक्शन है IMyInterface - & gt; एसिंक & lt; seq & lt; स्ट्रिंग & gt; & gt;

Comments

Popular posts from this blog

c# - LINQ to Entities does not recognize the method 'Int32 IndexOf(System.String, System.StringComparison)' method -

python - Writing Greek in matplotlib labels, titles -

ruby on rails - Add fingerprint to old paperclip attachments -