我尝试从函数中获取一个值并将其显示在我的TextBox“total1”中,这是我的代码:
public async void getListePerSearche()
{
total1.Text = getResultsNumber().Result;
}
这是我从其他Web服务发送到我的TextBox的值的函数:
public async System.Threading.Tasks.Task<string> getResultsNumber()
{
string numbers;
try {
UriString3 = "MyURL.php";
var http = new HttpClient();
http.MaxResponseContentBufferSize = int.MaxValue;
var response = await http.GetStringAsync(UriString3);//the debugger stops here
var rootObject = JsonConvert.DeserializeObject<NvBarberry.Models.RootObject>(response);
numbers = rootObject.total;
return numbers;
}
catch (Exception e)
{
return e.Message.ToString();
}
}
问题是调试器在此行停止,我没有收到任何错误消息或者甚至没有读取catch块,
var response1 = await http1.GetStringAsync(UriString3);
所以,请问如何更正我的代码,将getResultsNumber方法中的变量值发送到getListePerSearche方法
感谢您的帮助
答案 0 :(得分:1)
只需使用await关键字:
public async void getListePerSearche()
{
total1.Text = await getResultsNumber();
}
如果使用Task对象的属性.Result,则进行阻止操作。但是UI线程上不允许阻塞操作。