运行 一个线程总是在 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();
我正在编写一个 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();