Использование нескольких индикаторов выполнения для нескольких потоков без глушения графического интерфейса - PullRequest
6 голосов
/ 27 июля 2011

Я пишу приложение Eclipse RCP, в котором несколько потоков будут обновлять пользователя по ходу выполнения, каждый через свой собственный индикатор выполнения в графическом интерфейсе. Мне сказали, что позволить каждому индивидуально обновлять свой собственный индикатор выполнения потенциально может вызвать конфликт из-за общего ресурса (я полагаю, один из родительских индикаторов выполнения, таких как Shell). Это правда?

Мне было предложено, чтобы я создал промежуточный класс с синхронизированными методами, который будет выполнять роль воронки сериализации для вызовов обновления из потоков. Это решение? Можете ли вы предложить лучшее решение?

1 Ответ

2 голосов
/ 28 июля 2011

Это на самом деле довольно легко. Всякий раз, когда вам нужно обновить индикатор выполнения из какого-либо потока, вы заключаете код обновления в

display.asyncExec(new Runnable() { .... });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...