【问题标题】:Are the ParallelExtensions "Extras" still of value?ParallelExtensions“附加”仍然有价值吗?
【发布时间】:2016-05-28 00:44:35
【问题描述】:

Task Parallels Extras extension 于 2010 年发布,此后未发布任何更新。

我将此代码发布为 DLL on Nuget 3 years ago,下载量已超过 16,000 次,这表明对代码的兴趣。

TPL Extras 是否已被任何新技术取代?如果是这样,我想适当地注释 Nuget 描述。

【问题讨论】:

  • 里面还有一些珍珠。还有错误。这个项目将从开源中受益匪浅。斯蒂芬图布是它的作者。我不知道他或微软对开源的立场。
  • @Usr 是否开源,只需检查提供的链接。我亲自编译了代码,放到了 NuGet 上
  • 网络上有各种分支。我维护自己的叉子来修复严重的错误。应该有一个官方的 GitHub 存储库来收集各种人所做的所有改进。
  • 它已移至 GitHub 并针对 .Net Standard 2.1 进行了更新! github.com/dotnet/samples/tree/master/csharp/parallel/…

标签: c# multithreading concurrency parallel-processing task-parallel-library


【解决方案1】:

没有一种单一的技术可以取代 PEE,但有些技术会使它的某些部分变得不那么有用或过时:

  1. async-await 使 LINQ to Tasks 几乎过时了
  2. Rx 包含 Task.ToObservable() 扩展方法(显然在文章发表时已经这样做了)
  3. .Net 4.5 中引入的ConcurrentExclusiveSchedulerPairConcurrentExclusiveInterleave 的改进版本
  4. TPL 数据流可用于实现管道
  5. 大多数网络类型都在 .Net 4.5 中使用异步方法进行了扩展

【讨论】:

  • ConcurrentExclusiveSchedulerPair 也替换了LimitedConcurrencyLevelTaskScheduler
  • @StephenCleary 你知道QueuedTaskScheduler 是否有替代品?我们正在尝试转发一些代码,并且我们有一个依赖于该类的项目。似乎找不到可以取代它的东西
  • @pinkfloydx33:没有 AFAIK。 QueuedTaskScheduler 做了很多很多。您需要确定需要哪些方面(任务优先级/公平性/前台线程/单元状态/线程优先级/线程初始化和拆卸/线程堆栈大小/嵌套任务调度程序),并查看是否可以将代码重写为不需要那些方面。 (我没有列出并发方面,因为它包含在ConcurrentExclusiveSchedulerPair)。
  • @StephenCleary 在尝试找出我需要的 PEE 中的 StaTaskScheduler 是否已被取代时,我刚刚发现了这个 StackOverflow 问题;你会碰巧知道它是否有,如果有,用什么? PEE 中的所有内容以及它的各种扩展如何被取代的列表真是太好了!请注意,虽然后一个问题只是一厢情愿,但前者才是我真正想要的。 :) 谢谢!
  • @StephenCleary 重读后我现在无法编辑我以前的评论(我写它的时候已经很晚了,呵呵),但我的主要问题是你是否知道是否有任何东西取代了 StaTaskScheduler。对不起,如果我把事情和我最后的热情搞混了!
猜你喜欢
  • 2011-05-21
  • 2021-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-18
  • 2021-11-20
相关资源
最近更新 更多