总是在eclipse中运行一个线程

时间:2015-03-16 10:33:31

标签: java eclipse multithreading eclipse-plugin

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

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

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

但我该如何实施呢?我怎样才能在eclipse中运行一个总会运行的线程?有没有更好的解决方案?

1 个答案:

答案 0 :(得分:0)

您仍然可以使用带有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();