1

我有这段代码可以在java中运行带有进度条的作业:

private void createNewJobRun(final int i) {
    Job job = new Job("Experiment " //$NON-NLS-1$
            + getName()) {
        @Override
        protected IStatus run(IProgressMonitor monitor) {

            monitor.beginTask("Experiment is running ...", 100); //$NON-NLS-1$
            //call here my own functions that to the actual work

            monitor.done();
            return Status.OK_STATUS;
        }
    };
    job.schedule();



}

问题是我想多次调用此函数,但只有第一个作业运行,其他作业几乎同时启动,但我从未看到他们的结果......尽管显示了他们的进度监视器。我如何等待所有这些都以某种方式完成或问题出在其他地方?

4

1 回答 1

-1

首先,您必须创建自己的类,它是 Callable 的子类。

在此类中,您将覆盖调用方法并执行您在 createNewJobRun 中执行的操作。

现在您必须创建一个 FutureTask(在线程中执行以创建您的作业并获得结果)。

示例:查看此链接(在标题 FutureTask 处<V>

这里

于 2012-10-23T08:52:28.373 回答