c# - 如果我们定期更新GUI,后台线程真的有帮助吗?

标签 c# wpf multithreading

我想知道如果我需要定期更新GUI(在我的情况下经常很多),后台线程是否真的有帮助?我正在使用WPF(C#)应用程序。打开旧的项目文件时,我已经在后台线程上完成了所有处理,但是GUI显示进度,需要定期刷新。

因此,在这种情况下,后台线程确实会有所帮助。如果我将此处理移到主线程上(怎么办,否则我什么也不做,只是在等待文件加载)怎么办?

成立 !!谢谢,

最佳答案

好吧,要考虑的一件事不是经常更新进度。用户是否会注意到每秒更新100次与每秒更新10次之间的区别?您可能要批处理更新。话虽这么说,除非更新实际上在性能方面变得有问题,否则我不会承受复杂性的打击。

但是,如果您要进行大量工作,则绝对应在后台线程中进行处理。否则,在进行此工作时,您的UI会变得无响应-并且根据某些细节,进度更新甚至可能根本不显示!

即使您的代码可能没有做任何其他事情,UI线程仍然希望能够响应事件-鼠标移动等。

关于c# - 如果我们定期更新GUI,后台线程真的有帮助吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4956902/

相关文章:

java - "Thread-19"java.lang.IllegalStateException : Not on FX application thread; currentThread = Thread-19

c# - 在线crm动态,将自定义url参数传递给插件

c# - 在 MVVM 架构中将项目绑定(bind)到 silverlight 组合框

c# - 如何在 Windows.Forms.PictureBox 中正确显示 Kinect 视频流?

.net - 在wpf中使用复合集合获取选定项

c# - 更新服务引用在 WCF 中不起作用

java - 在执行和完成时检索线程 ID? java

c# - 没有嵌套使用的步进 MVC Mini Profiler

wpf - 您必须添加对程序集 'Microsoft.Data.Services.Client.Portable...' 和 NUGET 的引用

c# - 在 c# 控制台应用程序中的 2 个线程之间传递变量(这里是新手)