我有这个功能:
public async Task<string> GetData()
{
var httpClient = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "My Link Here...");
var response = await httpClient.SendAsync(request);
string value = await response.Content.ReadAsStringAsync ();
return value;
}
它从webapi获取数据,然后我必须使用该数据使用Steema Teechart在Xamarin Forms中构建图表。问题是我无法在构建图表的类中调用函数GetData(),因为我想要使用数据的方法不是async。我应该如何调用GetData()并使用字符串?
我试过了:
Task<string> s = GetData ();
s.Wait ();
string initialValues = s.Result;
但它会停止我的应用并在一段时间后崩溃。
答案 0 :(得分:2)
问题是我无法在构建图表的类中调用函数GetData(),因为我想要使用数据的方法不是异步的。我应该如何调用GetData()并使用字符串?
您制作调用方法async
,然后使用await
:
string initialValues = await GetData();
是的,这意味着您的调用方法还需要返回Task
/ Task<T>
,这意味着其调用方法也应该是async
,等async
的这种“增长”是完全自然的。