通过 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
匹配签名.
我正在使用一个委托和事件,如下所示:
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
匹配签名.