我来自 Objective-C 背景,我会使用 Grand Central Dispatch 或 NSOperations 相当简单地解决这个问题。不幸的是,当我尝试在 C# 中构造这个问题时,我认为我陷入了这种思维方式。
我有高级任务,每个任务都有多个可以并行发生的部分。这些部分中的每一个都需要经过管道中的几个阶段。我需要构建这个管道,但知道高级任务何时完成,并执行回调。
使用 GCD,我会创建队列来执行各个部分,每个都链接到流程的下一部分。所有这些部分都将根据它们所属的高级任务进行分组,以便最终触发回调。
我正在努力弄清楚这将如何在 C# 中工作。我一直在研究任务并行库,但对我使用的东西没有特别的偏好。到目前为止,我遇到的一个问题是,如果您完成处理,完成回调似乎只能使用 TPL 管道,但因为我将有多个不会发生的任务。
在概述级别上,如何最好地构造这个问题?我想知道用 Rx 提供并发编写系统是否会更好?