从异步函数中获取值

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 线程不允许阻塞操作。