我正在編寫一個封裝第三方Web服務調用的庫,並試圖使庫使用新的異步/等待功能。以下示例中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方法,該方法是否應該添加異步和等待關鍵字?或者是因爲它返回一個任務是好的嗎?這種嵌套有更好的模式嗎?
我認爲DoSomethingAsync方法是正確的方法去這裏,是否正確?我相信DoSomethingElseAsync在建立圖書館時似乎是錯誤的方法。
C#5.0不存在,下一個版本是4.5,你碰巧意味着什麼? – 2012-08-02 15:13:34
@Ramhound - 下一個CLR是4.5,下一個語言_is_ C#5 – 2012-08-02 15:19:45