尝试从异步方法返回String时发生异常

时间:2014-07-28 17:05:30

标签: c# asynchronous async-await

我正在开发一个Winforms应用程序,该应用程序在Timer控件循环中对各种Web服务进行一些基于HTTP的API调用。使用async关键字调用Web服务。问题是我在尝试将结果作为字符串返回时遇到了线程异常。

private async Task<String> UpdateViaApi(ClientInfoObject clientInfoObject)
{
    HttpResponseMessage response = await myHttpClient.SendAsync(request);
    string result = await response.Content.ReadAsStringAsync();
    return result;
}

以下是我如何称呼该方法...

string result = UpdateViaApi(clientInfoObject);

ClientInfoObject是一个简单的类,它包含数据作为一系列属性。我正确使用Task吗?

1 个答案:

答案 0 :(得分:4)

您需要await返回的任务:

string result = await UpdateViaApi(clientInfoObject);

另请注意,方法名称应以Async结尾,conform to the convention

string result = await UpdateViaApiAsync(clientInfoObject);