我有以下代码在这里:异步方法的返回类型必须为void,任务或任务<T>
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,并获取包含结果的任务。
目前,它提供了一个编译器错误说
The return type of an async method must be void, Task or Task<T>
什么是实现这一目标,摆脱这种错误的最好方法?其他(更好的解决方案)的欢迎和一些解释为什么task.Result.Result在最后ContinueWith也欢迎。
如果是这样,我会发布这个问题。 –