通过 Observable.FromEvent 对象调用事件函数

Callling event function through Observable.FromEvent object

我正在使用一个委托和事件,如下所示:

public delegate void DelgSampledelegate(string status);

public static event DelgSampledelegate sampleEvent;

sampleEvent += new DelgSampledelegate(sample_method);

public void sample_method(string value)
{}

现在我想为上面的委托使用 Rx 扩展。所以我尝试了下面的代码来创建 Observable.FromEvent

的对象
var objDataUpdated = Observable.FromEvent(h => sampleEvent += h, h => sampleEvent -= h);

var movesSubscription = objDataUpdated.Subscribe(evt => evt.ToString());

我的目标是像调用 earlier.I 一样调用 'sample_method' 函数知道它可以通过 subscribe.Please 指导我正确的方法来完成。

除了类型参数和实际引发事件来测试它之外,看不出您遗漏了很多东西:

var objDataUpdated = Observable.FromEvent<DelgSampledelegate, string>(
    h => sampleEvent += h,
    h => sampleEvent -= h);

var movesSubscription = objDataUpdated.Subscribe(x => sample_method(x));

// note the preceding line can be shortened to finish
// .Subscribe(sample_method) but I didn't want to make too many leaps

// raise a sampleEvent, will call sample_method("Test")
sampleEvent("Test");

有关 FromEvent 的全面解释,请参阅 How to use Observable.FromEvent instead of FromEventPattern and avoid string literal event names - 尽管请注意此答案中的表格不需要转换函数,因为 DelgSampledelegate 的签名与所需的 OnNext 匹配签名.