运行 一个线程总是在 eclipse 中

Run a thread always in eclipse

我正在编写一个 eclipse 插件,它将始终在当前活动的编辑器中检查文件(如果编辑器更改,它将检查新的编辑器),然后在编辑器中突出显示一些行。 (数据库包含所有需要突出显示的文件名和关联行)。

插件开发成功。问题是,它只检查数据库一次,如果无法连接到数据库,就会产生我自己的错误消息。我希望插件定期检查数据库(是否有新更新),一旦连接到数据库,它就会立即突出显示编辑器。

我想我不能为它使用 eclipse WorkspaceJob 因为 workspaceJob 只会检查编辑器一次,但我想在一定的时间间隔内(比如每 30 秒)将它保持为一个连续的过程).所以,我觉得线程比较合适。

但是我该如何实现呢?我怎样才能 运行 eclipse 中的一个线程,它总是 运行?有没有更好的解决办法?

您仍然可以使用带有 schedule(long delay) 方法的 WorkspaceJob 来设置 30 秒延迟。让作业在定期 运行 达到 运行 后自行重新安排:

WorkspaceJob job = new WorkspaceJob("jobname") {
    @Override
    public IStatus runInWorkspace(IProgressMonitor monitor)
            throws CoreException {
        // TODO add code here
        this.schedule(30000);
        return Status.OK_STATUS;
    }
};
job.schedule();