异步WebClient是如此之慢?

时间:2013-05-01 07:20:29

标签: c# windows-phone-7 async-await base-class-library

我正在玩最简单的使用情况bcl.async in wp7

private async void loadButton_Click1(object sender, RoutedEventArgs e)
{
        var client = new WebClient(); 
        string response = await client.DownloadStringTaskAsync(new Uri("myurl"));
        Debug.WriteLine(response);
}

所以,我在第一行和最后一行有断点,在调试模式下在设备上运行。有时需要大约5秒才能得到答案(这很奇怪),但有时需要几分钟。在设备的1个请求期间,我能够在浏览器中检查请求(获得即时回答,少于秒),喝茶,并检查9gag。

我可以假设我网络不好,但浏览器的请求是光速的,所以这不是问题。此外,我尝试了RestSharp,但遇到了同样的问题。非异步WebClient调用可以正常工作。

编辑: 快速解决方案:您要做的第一件事就是重启设备。

1 个答案:

答案 0 :(得分:1)

正如我在评论中提到的,我认为使用HttpClient而不是WebClient是值得研究的。 HttpClient是更新的,在设计时考虑了新的WebAPI,我相信它的设计目的是提高效率。

列出了一个很好的比较here