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 のサブクラスである独自の Class を作成する必要があります。

このクラスでは、call メソッドをオーバーライドして、createNewJobRun で行うことを行います。

ここで、FutureTask を作成する必要があります (ジョブを作成して結果を取得するためにスレッドで実行されます)。

例: このリンクを見てください (見出し FutureTask にあります<V>) 。

ここ

于 2012-10-23T08:52:28.373 に答える