为了账号安全,请及时绑定邮箱和手机立即绑定

为每个孩子运行一个单独的任务

为每个孩子运行一个单独的任务

C#
Helenr 2021-10-23 16:40:00
我有一个树数据结构,其中每个兄弟姐妹都可以并行处理。目前我创建了一个单独的任务来处理每个孩子。这是天真吗,一旦树具有给定的大小/深度,它会损害性能吗?还是 CLR 旨在处理任意负载的任务,因为它们没有绑定到特定的操作系统线程?!
查看完整描述

1 回答

?
慕的地10843

TA贡献1785条经验 获得超8个赞

这个问题的重要答案是肯定的。但是为了完全理解它,您必须更深入地研究任务,看看您的任务是长期运行的任务还是短期运行的任务。

第二个链接包含您问题的答案,但为您总结一下:

默认情况下,任务是短期运行的。这是什么意思

任务将在线程池中创建。如果您的任务将执行会消耗大量时间的工作,这意味着长时间运行- 您应该避免在线程池中创建任务,因为它会用越来越多的任务填充您的线程池并最终会溢出,让我们调用它,线程池。

长时间运行意味着任务将在线程池之外的单个线程上创建,它可以使用TaskCreationOptions Enumeration定义:

TaskCreationOptions.LongRunning


查看完整回答
反对 回复 2021-10-23
  • 1 回答
  • 0 关注
  • 138 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信