मैं एक लाइब्रेरी लिख रहा हूं जो किसी तृतीय पक्ष वेब सेवा कॉल को लपेटता है और लाइब्रेरी को नई async/प्रतीक्षा सुविधाओं का उपयोग करने की कोशिश कर रहा हूं। निम्नलिखित उदाहरण में एसिंक/प्रतीक्षा कीवर्ड का उचित उपयोग क्या है?Nesting async/await विधियों
public class MyApi
{
public Task<ApiResult> DoSomethingAsync()
{
return this.DoSomethingCore();
}
public async Task<ApiResult> DoSomethingElseAsync()
{
return await this.DoSomethingCore();
}
private async Task<ApiResult> DoSomethingCore()
{
var httpClient = new HttpClient();
var httpResponseMessage = await httpClient.GetAsync("some url");
var rawResultText = await httpResponseMessage.Content.ReadAsStringAsync();
return new ApiResult(rawResultText);
}
}
मेरे फोन करने वाले DoSomethingAsync विधि, कि विधि भी async होना चाहिए और कीवर्ड्स से जोड़ रहे है इंतजार का इंतजार करने के लिए अनुमति देने के लिए? या यह ठीक है क्योंकि यह एक कार्य देता है? इस तरह के घोंसले के लिए एक बेहतर पैटर्न है?
मुझे लगता है कि DoSomethingAsync विधि यहां जाने का सही तरीका है, क्या यह सही है? मेरा मानना है कि पुस्तकालय बनाने के दौरान DoSomethingElseAsync गलत दृष्टिकोण प्रतीत होता है।
सी # 5.0 मौजूद नहीं है, अगला संस्करण 4.5 है, क्या इसका मतलब यह है? –
@ रामहाउंड - अगला सीएलआर 4.5 है, अगली भाषा _is_ सी # 5 –