【发布时间】:2017-08-04 22:09:41
【问题描述】:
我试图更新一些数据而不询问 Windows 应用程序上的用户,但是当我尝试下载时,应用程序不可用并且控件不可触摸。
代码:
using (WebClient client = new WebClient {Encoding = System.Text.Encoding.UTF8})
{
string url = "http://domain_name.com/api/getSomeData";
res = client.DownloadString(url);
}
【问题讨论】:
-
您需要调查
await和async的 C#。 -
您正在 UI 线程上运行下载,因此在下载过程中它无法响应。您需要了解线程。
-
第一个答案给你一个线索(2.)。但是,当您开始将
async方法添加到您的应用程序时,您会发现设计将开始发生变化(如果您做得正确的话)。祝你好运。 -
这绝对有可能,但您需要先了解为什么这不起作用,而且它不起作用是因为您正在使用 UI 线程。当您了解线程时,您将知道答案,并且下次可以正确执行。盲目地复制和粘贴别人的代码来解决问题并不能使你成为一名优秀的开发人员......
-
优秀的建议 garfbradaz。学习异步应该彻底颠覆你的整个编程范式:)
标签: c# webclient downloadstring