我这里有以下代码:
public async Dictionary<string, float> GetLikelihoodsAsync(List<string> inputs)
{
HttpClient client = new HttpClient();
string uri = GetUri();
string body = GetRequestBody(inputs);
byte[] requestData = Encoding.UTF8.GetBytes(body);
Dictionary<string, float> result = await GetResponseAsync(requestData, client, uri)
.ContinueWith(responseTask => ParseResponseAsync(responseTask.Result))
.ContinueWith(task => task.Result.Result);
return result;
}
async Task<HttpResponseMessage> GetResponseAsync(byte[] requestData, HttpClient client, string uri) {...}
async Task<Dictionary<string, float>> ParseResponseAsync(HttpResponseMessage response) {...}
基本上,完成 GetResponseAsync 后,我想获取结果并将其提供给 ParseResponseAsync ,然后获得带有其结果的任务。
目前,它会给出编译器错误,说:
异步方法的返回类型必须是 void、Task 或 Task<TResult>
如何实现这一目标并消除此错误?其他(更好的解决方案)也受欢迎,以及为什么在最后的 ContinueWith 中使用 task.Result.Result 的一些说明也很受欢迎。