У меня есть несколько пользовательских аргументов:
AutoOccurPerformedEventArgs : EventArgs
и то же событие с этими аргументами событий возникает в 2 отдельных местах. Я пытаюсь использовать Reactive Extensions, чтобы присоединиться к ним, а затем подписаться
var events = new[]
{
Observable.FromEvent<AutoOccurPerformedEventArgs>(viewModel1, "AutoOccurActionPerformed"),
Observable.FromEvent<AutoOccurPerformedEventArgs>(viewModel2, "AutoOccurActionPerformed"),
};
events.ForkJoin().Subscribe(op => IsUpdatedByAutoOccur = op.Any(observedItem => observedItem.EventArgs.IsUpdatedByAutoOccur));
Мой анонимный делегат в подписке никогда не вызывается. Никаких исключений не возникает, делегат просто никогда не вызывается.
Однако, если я подписываюсь на каждое событие индивидуально, без ForkJoin, события обрабатываются корректно (хотя и отдельно)
Observable.FromEvent<AutoOccurPerformedEventArgs>(viewModel1, "AutoOccurActionPerformed")
.Subscribe(o => IsUpdatedByAutoOccur = o.EventArgs.IsUpdatedByAutoOccur ? true : IsUpdatedByAutoOccur);
Observable.FromEvent<AutoOccurPerformedEventArgs>(viewModel2, "AutoOccurActionPerformed")
.Subscribe(o => IsUpdatedByAutoOccur = o.EventArgs.IsUpdatedByAutoOccur ? true : IsUpdatedByAutoOccur);
Есть идеи, почему ForkJoin не работает?