我有以下代碼在這裏:異步方法的返回類型必須爲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也歡迎。
如果是這樣,我會發布這個問題。 –