【发布时间】:2014-05-26 03:22:21
【问题描述】:
我正在与一位同事交谈,他向我指出了关于 subjects being considered harmful 的 SO 问题。但是,我有两种情况,我有一些非确定性代码,在其他情况下似乎不合理。
非标准事件:
event handler(class, result)
{
subject.OnNext(result);
}
public delegate void _handler
([MarshalAs(UnmanagedType.Interface), In] MyClass class,
[MarshalAs(UnmanagedType.Interface), In] ResultClass result)
并行任务(所有并行运行的任务数量不确定,从不同时间开始):
Task.Start(()=> ...).ContinueWith(prevTask => subject.OnNext(prevTask.result))
主题没有暴露,只是通过一个可观察的。是否有另一条路线建议不是大量的样板文件?
【问题讨论】:
-
简短的回答是否定的。但是,这两种情况都可以使用内置功能来处理。
IObservable<T> ToObservable(this Task<T> task)应该处理您的任务继续情况,Observable.FromEvent应该处理其他情况。这些方法是否过于冗长?两者都提供了比简单主题更多的功能,包括懒惰。 -
@ChristopherHarris 谢谢,但我不确定第一个有效,我知道第二个无效。第一个是因为我的任务数量不确定,第二个是因为如前所述,这不是标准事件……FromEvent 不起作用
-
当您说“所有并行运行的任务数量不确定”时,您真正的意思是“多个急切调用的任务”,不是吗?
-
@ChristopherHarris 是的。他们可以在不同的时间开始,否则合并会起作用
-
您的非标准活动的委托类型是什么?
标签: c# system.reactive reactive-programming