【发布时间】:2011-06-26 23:42:01
【问题描述】:
我有一些自定义事件参数:
AutoOccurPerformedEventArgs : EventArgs
并且在 2 个单独的位置引发了具有这些事件参数的相同事件我正在尝试使用反应式扩展来分叉加入这些然后订阅
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 不起作用的任何想法?
【问题讨论】:
标签: silverlight system.reactive