从异步函数中获取值
get a value from an async function
我尝试从函数中获取一个值并将其显示在我的文本框中 "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 方法
感谢帮助
只需使用 await 关键字:
public async void getListePerSearche()
{
total1.Text = await getResultsNumber();
}
如果您使用任务对象的 属性.Result,您将进行阻塞操作。但是 UI 线程不允许阻塞操作。
我尝试从函数中获取一个值并将其显示在我的文本框中 "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 方法
感谢帮助
只需使用 await 关键字:
public async void getListePerSearche()
{
total1.Text = await getResultsNumber();
}
如果您使用任务对象的 属性.Result,您将进行阻塞操作。但是 UI 线程不允许阻塞操作。