使用方法 DownloadString() 或其他方法?

Using method DownloadString() or another one?

我正在我的 Visual Studio 中制作一个 C# 程序,我在 "Click" 上有一个按钮,假设它向 Internet 中的 .php 文件发出请求并读取 json、rest 或 soap(不确定哪个对 C# 来说最舒服)。 我正在使用 new WebClient().DownloadString(url);
我的问题是
- 为什么我第一次点击按钮(使用功能)整个程序冻结,然后就不再冻结了?
- 如何防止 "freezing effect" ?
- 是否有更好的方法从网络检索该信息?
- json,休息还是肥皂更可取?

  • 为什么我第一次使用该功能整个程序卡住?

您正在连接到外部资源,这需要时间,并且您正在使用来自该资源的内容,这也需要时间。 DownloadString 是一个阻塞任务,您的主应用程序将等待它返回某些内容。

  • 如何防止 "freezing effect" ?

使用 WebClient 提供的异步方法。 DownloadStringTaskAsync.

可在此处找到文档:https://msdn.microsoft.com/en-us/library/hh194294%28v=vs.110%29.aspx

上一个问题:Webclient calls to DownloadString cause my app to freeze

这就是我为你准备的一切。