gpt4 book ai didi

task-parallel-library - TPL Dataflow over Reactive Extensions (Rx) 的用例是什么

转载 作者:行者123 更新时间:2023-12-03 23:55:21 26 4
gpt4 key购买 nike

我特别想用一种或另一种方式编写一些信号处理算法,或者可能是这两种算法的某种组合。

性能不是大问题,表达意图的清晰度更重要。

我希望实现以下“块”并组合它们:

  • 滤波器(FIR 和 IIR)
  • 鉴相器
  • 集成商
  • blender
  • 函数发生器
  • PLL(使用上述作为构建块)

  • 我知道 Rx 可以被视为“Linq-to-streams”,而 TPL 是对并发的抽象。
    我还了解到 Rx 在内部使用 TPL 来管理其异步位,并且 TPL 数据流为 TPL 增加了可组合性。

    所以两者都是异步的,两者都是可组合的,两者都是相当高的水平(Rx moreso)。
    应该在哪里使用,一般和我上面的信号处理项目?

    最佳答案

    这取决于您正在处理的原语类型 - 如果您使用放大类型来推送数据,Rx 和 TPL 会更加丰富,但是如果您正在处理单个样本(例如 IObservable<byte>ISourceBlock<float> 等)使用它可能很乏味。

    最近实现了函数发生器、FFT、功率谱量化器等,我从 Rx 开始(这不是 TPL 擅长的并发/并行的情况),但发现我花了更多时间试图让它在Rx 模型 - 我最终选择了 System.Stream

    它对我来说效果很好,并且令人惊讶地可组合。然而,性能和避免 GC 在我的列表中是最重要的,所以如果你不介意,我建议 Rx - 你可以用响应式(Reactive)组合器做一些非常酷的事情。

    关于task-parallel-library - TPL Dataflow over Reactive Extensions (Rx) 的用例是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9487599/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com