का इंतजार नहीं कर सकते हैं तो आप एक कार्य का इंतजार कैसे कर सकते हैं मैं विंडोज 8 रनटाइम घटक विकसित कर रहा हूं ताकि सार्वजनिक इंटरफ़ेस में Task<T>
शामिल न हो क्योंकि यह विंडोज रनटाइम प्रकार नहीं है।जब आप
इसका मतलब है कि मैं विधि को async
के रूप में चिह्नित नहीं कर सकता और await
private async
मेरी लाइब्रेरी में विधियों को नहीं कर सकता। यह मेरे आवेदन तर्क को संभालने के तरीके के बारे में कुछ भ्रम पैदा कर रहा है।
इस तरह मैं वही करता हूं जो मैं सिंक्रनाइज़ करना चाहता हूं।
Result r = TryGetAuthResultFromFile();
if(r != null)
{
return r;
}
r = GetAuthResultFromWebAuthenticationBroker();
return r;
समस्या यह है कि TryGetResultFrom फ़ाइल async Task<Result>
तरीके और विधि कि r लौटा रहा है IAsyncOperation<Result>
लौटा रहा है मैं इस की कोशिश की है (यह पूरा कोड नहीं है, लेकिन सिद्धांत देखा जा सकता है, संभाल रहे हैं निरंतरता में परिणाम और उन्हें वापस लौटाते हैं, मुझे परिणामों के कुछ frigging IAsyncOperation प्रकारों को करना होगा)।
TryGetAuthResultFromFile().ContinueWith(x=>
{
if(x.Result != null)
{
return x.result;
}
GetAuthResultFromWebAuthenticationBroker().ContinueWith(y=>
{
return y.Result;
});
});
इस के साथ समस्या यह है कि WebAuthenticationBroker
काम प्रतीत नहीं होता है, तो यह यूआई धागे से नहीं कहा जा रहा है है। यह उपयोगी त्रुटि संदेश के बिना उपयोगी NotImplementedException
फेंकता है।
मैं TryGetAuthResultFromFile
पर कॉल कैसे कर सकता हूं, फिर परिणाम की प्रतीक्षा करें, फिर GetAuthResultFromWebAuthenticationBroker
पर कॉल करें?
धन्यवाद, मैंने पहले से ही इस तकनीक का उपयोग पहले से ही किया है और यह वही है जो मुझे चाहिए। मुझे यकीन नहीं है कि मैंने स्पष्ट समाधान क्यों नहीं देखा, घर मुझे लगता है। – BenCr