我有一个类,它公开了以下可观察的序列:
internal IObservable<TaskDoneEventArgs> WhenTaskDone => Observable
.FromEventPattern<TaskDoneEventHandler, TaskDoneEventArgs>(
handler => NiTask.Done += handler,
handler => NiTask.Done -= handler)
.Select(x => x.EventArgs);
每当从序列中观察到新项时,我希望执行一些异步TPL逻辑。据我所知,SelectMany()
是处理异步逻辑的好方法。但是,我在语法正确方面遇到了麻烦。
下面是我尝试这样做,但它不会编译:
_output.WhenTaskDone
.SelectMany(async _ => await StopDelivery())
.Subscribe(_ => Debug.WriteLine("Delivery stopped"));
我得到了以下与SelectMany()
相关的错误
Error CS0411: The type arguments for method 'Observable.SelectMany<TSource, TOther>(IObservable<TSource>, IObservable<TOther>)' cannot be inferred from the usage. Try specifying the type arguments explicitly. (85, 18)
StopDelivery()
函数的签名如下:
internal Task StopDelivery()
我在这里遗漏了什么,做错了什么?
https://stackoverflow.com/questions/56569234
复制相似问题