【发布时间】:2020-03-06 16:31:45
【问题描述】:
我正在为我自己的项目(Eclipse 基础,使用 SWT)开发一个插件,但我面临以下问题。该插件在执行开始时会做很多工作,因此可能需要 2 或 3 分钟才能完成整个操作。我决定实现一个日志窗口,这样我就可以检查进度和可能发生的任何错误。因此,当它完成他的工作时,当整个操作完成时,窗口/框架会充满所有信息。我自然想到,由于它使用单个线程来完成所有操作,因此一旦线程结束操作,就会触发“刷新接口”事件。
是否有任何适当或“正确”的方法来解决这个问题?我习惯于 Web 应用程序开发,一般来说我对 SWT 知之甚少。我有一个想法,即使用不同的线程来处理不同的操作,并在需要时同步它们,但我不完全确定这是否可行,或者在独立应用程序的边界内是否有更好的方法。
感谢任何提示或提示!
【问题讨论】:
-
我想你已经掌握了所有内容,你可能需要在 Display.asyncExec 中运行它,以免妨碍 UI 的加载。
-
使用
Job(org.eclipse.core.runtime.jobs.Job) 在后台运行代码。在工作中使用Display.asyncExec更新用户界面。
标签: java eclipse eclipse-plugin swt