Observable.FromEvent没有完成

时间:2012-03-19 16:32:15

标签: c# system.reactive

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方法停止执行。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

尝试拨打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进入您的主题都可能会导致您的代码被删除。最好只链接查询。