2014-11-28 3 views
0

У меня есть несколько экземпляров класса, которые прослушивают определенное событие.e4 RCP синхронная обработка событий

@Inject 
@Optional 
private final void doSomething(@UIEventTopic(Events.A) Object object) { 
    //do something 
} 

Мой вопрос: если я использую синхронный метод IEventBroker.send, будет этот метод надежно ждать, пока все объекты прослушивания сделаны? Мои тесты показывают «да», но я просто хотел бы убедиться.

ответ

0

JavaDoc для IEventBroker.send говорит:

Опубликовать событие синхронно (метод не возвращает пока событие не обрабатывается).

Внутренне брокер событий использует метод OSGi EventAdmin.sendEvent, который говорит:

Инициировать синхронную доставку события. Этот метод не возвращает вызывающему абоненту, пока доставка события не будет завершена.

Итак, да Синхронная доставка гарантирована.

Смежные вопросы