我在我的Visual Studio中制作了一个C#程序,并且我有一个按钮,在" Click"假设在Internet上请求.php文件并读取json,rest或soap(不确定哪个是最适合C#的文件)。
我正在使用new WebClient().DownloadString(url);
我的问题是
- 为什么我第一次点击按钮(使用功能)整个程序冻结,之后它没有冻结?
- 如何防止"冷冻效果" ?
- 有更好的方法从网络上检索这些信息吗?
- json,休息或肥皂更好吗?
答案 0 :(得分:1)
您正在连接外部资源,这需要时间,并且您从此资源中消耗内容也需要时间。
DownloadString
是一个阻塞任务,您的主应用程序将等待它返回某些内容。
使用WebClient提供的异步方法。 DownloadStringTaskAsync
。
可以在此处找到文档:https://msdn.microsoft.com/en-us/library/hh194294%28v=vs.110%29.aspx
上一个问题:Webclient calls to DownloadString cause my app to freeze
这就是我所拥有的一切。