C# 如何正确观察非标准事件?

C# 如何正确观察非标准事件?,c#,system.reactive,C#,System.reactive,我不熟悉反应式扩展,并且正在处理一个COM库,它的事件定义如下: public delegate void MyDelegate(int requestId, double price, int amount); public event MyDelegate MyEvent; Observable.FromEvent<MyDelegate, MyArgs>( converter => new MyDelegate( (id, pric

我不熟悉反应式扩展,并且正在处理一个COM库,它的事件定义如下:

public delegate void MyDelegate(int requestId, double price, int amount);
public event MyDelegate MyEvent;
Observable.FromEvent<MyDelegate, MyArgs>(
  converter => new MyDelegate(
                  (id, price, amount) => converter(new MyArgs { 
                                                        RequestId = id, 
                                                        Price = price, 
                                                        Amount = amount
                                                       })
               ),
  handler => MyEvent += handler,
  handler => MyEvent -= handler);
我如何正确地观察这一点?我尝试使用
Observable.FromEvent()
,但由于事件的参数不是
EventArgs
类型,我看不出
FromEvent()
FromEventPattern()
将如何工作

我目前的解决方法是将自定义委托附加到事件,然后调用
Subject.OnNext()
,但我猜我不应该这样做

以下是我当前解决方案的一个示例:

        MyEvent += new MyDelegate((int requestId, double price, int amount) =>
        {
            Task.Run(() =>
            {
                var args = new MyArgs()
                {
                    requestId = requestId,
                    price = price,
                    amount = amount,
                };
                this.mySubject.OnNext(args);
            });
        });

它有一个特殊的重载
FromEvent
。这有点傻,但函数签名看起来像:

IObservable<TEventArgs> FromEvent<TDelegate, TEventArgs>(Func<Action<TEventArgs>, TDelegate> conversion, 
                                                         Action<TDelegate> addHandler, 
                                                         Action<TDelegate> removeHandler);
IObservable FromEvent(Func