Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 始终在eclipse中运行线程_Java_Eclipse_Multithreading_Eclipse Plugin - Fatal编程技术网

Java 始终在eclipse中运行线程

Java 始终在eclipse中运行线程,java,eclipse,multithreading,eclipse-plugin,Java,Eclipse,Multithreading,Eclipse Plugin,我正在编写一个eclipse插件,它将始终在当前活动编辑器中检查文件(如果编辑器更改,那么它将检查新编辑器),然后在编辑器中突出显示一些行。(数据库包含所有需要高亮显示的文件名和关联行) 我成功地开发了这个插件。问题是,它只检查数据库一次,如果无法连接到数据库,则会生成我自己的错误消息。我希望插件定期检查数据库(新的更新),一旦连接到数据库,它会立即突出显示编辑器 我想我不能使用eclipseWorkspaceJob,因为WorkspaceJob只会检查编辑器一次,但我希望将其作为一个连续的过程

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

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

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


但我如何实现它呢?如何在eclipse中运行一个线程,它将始终运行?有更好的解决方案吗?

您仍然可以使用带有
计划(长延迟)
方法的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();

您可以在Eclipse中以与普通Java程序相同的方式运行线程,它不必是WorkspaceJob,一般的Job也可以。