我创建了被踢单击该按钮时,一个简单的异步操作。 这里是整个代码:
public partial class MainWindow : Window {
public MainWindow() {
InitializeComponent();
}
private async void Button_Click_1(object sender, RoutedEventArgs e) {
var htmlString = await DowloadPage("http://example.com");
txtBlock1.Text = htmlString;
}
public async Task<string> DowloadPage(string uri) {
using (WebClient client = new WebClient()) {
var htmlString = await client.DownloadStringTaskAsync(uri);
return htmlString;
}
}
}
很容易。 但是,当我按一下按钮,我体验到UI线程上反应迟钝。 当我尝试当页面被下载到周围的窗口移动,我无法。
任何想法是怎么回事?
编辑:
我试着用的HttpClient在.NET 4.5和它的工作非常伟大的预期:
public async Task<string> DowloadPage(string uri) {
using (HttpClient client = new HttpClient()) {
var response = await client.GetAsync(uri);
var htmlString = await response.Content.ReadAsStringAsync();
return htmlString;
}
}