2013-12-03 4 views
3

Я использую Prism EventAggregator в своем приложении. В моем сценарии это модуль загрузки, когда загрузка завершена, опубликуйте событие. Четыре объекта ViewModels подписывают это событие и имеют собственный обработчик событий, некоторые для записи файла журнала, некоторые для обновления пользовательского интерфейса.Как контролировать последовательность выполнения обработчика событий с помощью EventAggregator в Prism

  • Как контролировать последовательность выполнения обработчиков событий?
  • Выполняется ли параллельно?

ответ

2

По умолчанию они выполняются в том же потоке, в котором было опубликовано событие. Если вы указываете поток (UI/Worker), то они могут выполнить параллельно.

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

Почему вас беспокоит заказ? Это потому, что у вас много этапов инициализации? Отправляйте отдельное сообщение для каждой фазы.

+0

После завершения загрузки я использую aggregator.GetEvent <>(). Опубликовать(), чтобы опубликовать вентиляционное отверстие, в конструкторе четырех конструкторов viewmodels я использую aggregator.GetEvent <>(). Подписаться(), чтобы подписаться на событие , Вы имеете в виду, что последовательность выполнения зависит от того, какой конструктор из четырех режимов просмотра выполняется? Или я использую это неправильно? – Allen4Tech

+0

Порядок выполнения обработчика зависит от хронологического порядка, в котором был вызван метод 'Subscribe()'. – Gusdor

+0

@ Gusdor Done :-)! –