如何在GUI更新期间保持Delphi App响应?

如何在GUI更新期间保持Delphi App响应?,第1张

概述这个问题是关于在长时间运行的任务期间保持GUI响应(在大多数情况下几秒钟). 我广泛使用线程和任务模式在后台线程中执行昂贵的任务.但是GUI更新需要一些时间呢?例如,填充大字符串网格或树视图?一个线程在这里没有帮助,因为无论如何一切都需要与主线程同步. 我知道Application.ProcessMessages的问题,但目前它似乎是在GUI更新方法中调用ProcessMessages的唯一解决方 这个问题是关于在长时间运行的任务期间保持GUI响应(在大多数情况下几秒钟).

我广泛使用线程和任务模式在后台线程中执行昂贵的任务.但是GUI更新需要一些时间呢?例如,填充大字符串网格或树视图?一个线程在这里没有帮助,因为无论如何一切都需要与主线程同步.

我知道Application.ProcessMessages的问题,但目前它似乎是在GUI更新方法中调用ProcessMessages的唯一解决方案.

有更好的想法吗?

解决方法 IMO如果GUI更新是瓶颈(即使使用了BeginTheUpdate / EndUpdate作为@The_Fox建议),那么是时候重新考虑使用的GUI控件了.标准网格,树视图,列表框不仅仅是用于处理大量项目.为此目的,有许多高性能的第三方控件都是免费的和商业的.

对于入门者,如果瓶颈在网格,树视图或列表框上下文中,请查看VirtualTreevIEw.

总结

以上是内存溢出为你收集整理的如何在GUI更新期间保持Delphi App响应?全部内容,希望文章能够帮你解决如何在GUI更新期间保持Delphi App响应?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1272519.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存