在使用 Web 客户端期间无法使用当前应用程序



我试图在不询问 Windows 应用程序用户的情况下更新一些数据,但是当我尝试下载 时,应用程序不可用,控件不可触摸。

法典:

using (WebClient client = new WebClient {Encoding = System.Text.Encoding.UTF8})
{
string url = "http://domain_name.com/api/getSomeData";
res = client.DownloadString(url);
}

这很可能是因为您正在 UI 线程上执行代码。 当 UI 线程繁忙时,它无法从鼠标或键盘抽取窗口消息,例如输入事件。 您的选择是:

  1. 在单独的线程上运行此代码。

  2. 使用异步技术,如 WebClient.DownloadStringAsync 或 DownloadStringTaskAsync。

其中,选项 #2 是更好的做法。

有关正确使用这两个选项的示例,请参阅这个封闭的"题外话"问题的已接受答案(尽管数字是从我的列表中交换的( 如何在耗时的方法上使用异步和等待

相关内容

  • 没有找到相关文章

最新更新