ExecutorService JProgressBar - PullRequest
       7

ExecutorService JProgressBar

1 голос
/ 22 октября 2011

Вероятно, это простой, но я пробовал множество разных вещей, и что бы я ни пытался, я не могу заставить это работать.

В основном у меня есть JProgressBar, который я хочуобновлять по мере обработки списка задач.Задачи довольно короткие, но их много, поэтому я использовал ExecutorService.

Проблема в том, что я не могу найти хороший способ прослушать ExecutorService для определения количества оставшихся задач.обрабатывать.invokeAll () блокируется до тех пор, пока все задачи не будут завершены, и если я использую submit () для выполнения каждой задачи, задачи в значительной степени выполняются к тому времени, когда она попадает в код JProgressBar.Я даже пытался чередовать эти два, но это было просто противно.

Есть ли простой способ отправить пакет задач (реализующий вызываемый), а затем вызвать метод execute (), который начинает обработку в?

Или я смотрю здесь совсем не так?

Спасибо!

1 Ответ

1 голос
/ 22 октября 2011

Вы можете использовать ExecutorCompletionService: http://download.oracle.com/javase/1,5.0/docs/api/java/util/concurrent/ExecutorCompletionService.html

Примеры на странице документации довольно хороши;)

Обычно вы просто отправляете задачи в службу, а затем опрашиваете или принимаете. После того, как задание вернется, вы можете обновить JProgressbar.

...