gpt4 book ai didi

swt - 从 SWT 表中删除项目

转载 作者:行者123 更新时间:2023-12-04 16:33:26 28 4
gpt4 key购买 nike

对于我在使用大型 SWT 表的 RCP 应用程序中追逐了一段时间的问题,这更多是我想分享的答案。

问题是 SWT Table.remove(int start, int end) 方法的性能。它提供了非常糟糕的性能 - 在我的 Windows XP 上每 100 个项目大约 50 毫秒。但真正的阻碍是在 Vista 和 Windows 7 上,删除 100 个项目最多需要 5 秒钟!查看表的源代码表明,在这个调用中有大量的窗口事件飞来飞去。这使窗口系统陷入困境。

解决方案是在这次通话中隐藏该死的东西:

table.setVisible(false);
table.remove(from, to);
table.setVisible(true);

这确实很神奇——在 XP 和 Windows7 上删除 500 个项目需要大约 15 毫秒,这只是打印我使用的时间戳的开销。

好的 :)

最佳答案

您应该使用 table.setRedraw() 而不是 table.setVisible()。 Control 上的这种方法的目的正是在昂贵的更新期间抑制绘图操作。

关于swt - 从 SWT 表中删除项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2678796/

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