从 WinRT 中的 UI 调用 HttpClient - 没有任何反应



我正在尝试在Windows 8 Metro应用程序中获取网站的内容。我仍然对 asyn 和等待方法有点困惑。
但这就是我所拥有的:

private void HelloButton_Click(object sender, RoutedEventArgs e)
{  
    GetPage().Wait();
}
private async Task GetPage()
{
      HttpClient client = new HttpClient();
      HttpResponseMessage response = await client.GetAsync("http://www.supertext.ch");
      response.EnsureSuccessStatusCode();
      string responseBody = await response.Content.ReadAsStringAsync();
}

不幸的是,什么也没发生。如果尝试调试它,它只是在 GetAsync() 处停止。
我是否需要使HelloButton_Click函数也异步?
即使我等待函数 GetPage() 的完成?
是否可以直接从 GUI 线程调用网络请求?

不要在任务上调用Waitawait吧。这是一个常见的初学者错误。

将HelloButton_Click更改为:

private async void HelloButton_Click(object sender, RoutedEventArgs e)
{  
    await GetPage();
}

相关内容

最新更新