gpt4 book ai didi

c# - 通过异步任务的单独工作线程提高 UI 响应能力

转载 作者:太空宇宙 更新时间:2023-11-03 11:34:17 27 4
gpt4 key购买 nike

我的 silverlight 应用程序从 asmx web 服务中异步获取两组文件(比如 A 组和 B 组,A 组有几个文件,B 组有大量文件)。在接收到一个集合中的每个文件时,应该对其进行解析并且需要更新一些数据结构。一旦收到整个集合 A,就会向 Web 服务发出异步请求以获取集合 B。

收到集合 A 后,应用程序就可以使用了。但由于文件仍在从 B 组接收,因此 UI 响应不是很好。在后台获取和处理文件时,有什么方法可以提高响应能力。 Web 服务处理程序的 async_task_completed 是否在不同的线程上工作。有一个 BackgroundWorker 线程有意义吗?

编辑:澄清一下,一组(数百个文件)的异步请求是一起发出的。

最佳答案

从等式中剔除猜测。只需将此行暂时放入您的 Web 服务调用的完成代码中即可。

MessageBox.Show(Deployment.Current.Dispatcher.CheckAccess().ToString());

如果您看到“True”,您就在 UI 线程上,因此您(至少)需要离开它来进行处理。正如您所建议的,一种简单的方法是使用 BackgroundWorker

如果您看到“False”,则说明您已经在后台线程中,因此如果使用其他来源,您的性能会出现问题。

关于c# - 通过异步任务的单独工作线程提高 UI 响应能力,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6803856/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com