【问题标题】:Observable.FromEvent doesn't completeObservable.FromEvent 未完成
【发布时间】:2012-03-20 10:12:27
【问题描述】:
var DeviceSubject = new Subject<NetworkEventArgs>();

Observable.FromEvent<EventHandler<NetworkEventArgs>, NetworkEventArgs>(h => Device.Connected += h, h => Device.Connected -= h)
.Subscribe(DeviceSubject);

Device.Connected 事件声明如下...

public event EventHandler<NetworkEventArgs> Connected;

调用 Observable.FromEvent 后,我​​的 MainForm_Load 方法停止执行。有人可以帮忙吗?

【问题讨论】:

  • 请不要在标题前加上“c#”等。这就是标签的用途。

标签: c# system.reactive


【解决方案1】:

尝试拨打FromEventPatternFromEvent 用于非标准事件。

var DeviceSubject = new Subject<NetworkEventArgs>();

Observable
    .FromEventPattern<EventHandler<NetworkEventArgs>, NetworkEventArgs>(
        h => Device.Connected += h,
        h => Device.Connected -= h)
    .Select(ep => ep.EventArgs)
    .Subscribe(DeviceSubject);

顺便说一句:使用这样的主题时要小心。这样做是一种常见的反模式。任何可观察到的调用 OnComplete 到您的主题都可以杀死您的代码。最好只链接查询。

【讨论】:

  • 错误 2 参数 1:无法从 'System.Reactive.Subjects.Subject' 转换为 'System.IObserver>'
  • @TK3 - 抱歉。添加了适当的选择。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-19
  • 2013-08-16
  • 2017-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多