如何使用.NET Rx FromEvent,以便一次调用add事件处理程序,一次调用remove处理程序

如何使用.NET Rx FromEvent,以便一次调用add事件处理程序,一次调用remove处理程序,.net,system.reactive,observable,.net,System.reactive,Observable,是否可以使用.NET Rx Observable.FromEvent方法,或者是否有其他方法允许从事件创建Observable,但在调用第一个Subscribe方法或FromEvent(或类似方法)时仅调用一次add event handler当观察者被取消订阅时,调用且不调用移除事件,但允许手动移除事件 我有一个特殊的情况。提供该事件的库只允许添加一个或多个处理程序,直到调用该对象上的某个方法为止。之后,尝试添加另一个处理程序会引发异常。因此,我似乎无法使用FromEvent,因为每次调用Su

是否可以使用.NET Rx Observable.FromEvent方法,或者是否有其他方法允许从事件创建Observable,但在调用第一个Subscribe方法或FromEvent(或类似方法)时仅调用一次add event handler当观察者被取消订阅时,调用且不调用移除事件,但允许手动移除事件

我有一个特殊的情况。提供该事件的库只允许添加一个或多个处理程序,直到调用该对象上的某个方法为止。之后,尝试添加另一个处理程序会引发异常。因此,我似乎无法使用FromEvent,因为每次调用Subscribe时,生成的Observable都会添加和删除事件处理程序,然后取消订阅Observable

在这种情况下,最好的方法是什么?

使用该方法获得

尽可能多地订阅此observable。只有一个事件的基础订阅,订阅和取消订阅此可观察对象不会对基础订阅产生任何影响

IConnectableObservable<T> connectableObservable = Observable.FromEvent(…).Publish();
连接处于活动状态时,事件触发时,observable的所有订户都将收到通知。要取消订阅基础事件,
Dispose
连接

connection.Dispose();

现在事件将再次被忽略。

作为旁注,您是否知道您需要
可观察。FromEvent
或者您正在处理标准事件模式,并且应该使用
可观察。FromEventPattern
connection.Dispose();