gpt4 book ai didi

java - 在 SWT eclipse 插件上更新用户界面的最佳技术

转载 作者:行者123 更新时间:2023-12-01 18:05:17 25 4
gpt4 key购买 nike

我正在为自己的项目(Eclipse 基础,使用 SWT)开发一个插件,但我面临以下问题。该插件在执行开始时会执行大量工作,因此可能需要 2 或 3 分钟才能完成整个操作。我决定实现一个日志窗口,以便我可以检查进度以及可能发生的任何错误。因此,当它完成他的工作时,当整个操作完成时,窗口/框架会充满所有信息。我自然想到,由于它使用单个线程来完成所有操作,因此一旦线程结束操作,就会触发“刷新界面”事件。

有没有适当或“正确”的方法来解决这个问题?我习惯了 Web 应用程序开发,并且总体上对 SWT 知之甚少。我有一个想法,使用不同的线程来处理不同的操作,在需要时同步它们,但我不完全确定这是否可行,或者在独立应用程序的范围内是否有更好的方法。

感谢您的任何提示或提示!

最佳答案

所以最后我按照建议,生成了一个使用 Display.getDefault().asyncExec() 操作的自定义作业。像这样的小样本有效:

Job synJob = Job.create("Synchronize Files", (ICoreRunnable) monitor -> {

for(String filePath : paths) {
//my operation that sync some files in workspace in a loop ...
//...
//now log some data, updating the UI
Display.getDefault().asyncExec(() -> {
//generates a text and appends it to a frame etc.
Label label = new Label(myFrame, 0);
//etc
});
}

});

synJob.schedule();

关于java - 在 SWT eclipse 插件上更新用户界面的最佳技术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60568119/

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