首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Observable.FromEventPattern序列上使用异步逻辑的SelectMany?

如何在Observable.FromEventPattern序列上使用异步逻辑的SelectMany?
EN

Stack Overflow用户
提问于 2019-06-13 03:35:20
回答 1查看 260关注 0票数 1

我有一个类,它公开了以下可观察的序列:

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()

我在这里遗漏了什么,做错了什么?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56569234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档