gpt4 book ai didi

c# - AttachedToParent 有哪些用例?

转载 作者:行者123 更新时间:2023-11-30 13:54:19 25 4
gpt4 key购买 nike

Task.RunTaskFactory.StartNew 之间的区别之一是默认添加了新的 DenyChildAttach 选项。但是 AttachedToParent 的创建是有原因的。您希望在什么情况下使用附加的子任务?

最佳答案

AttachedToParent 的用例是当你有一个嵌套的 dynamic task parallelism设想。即:

  1. 您有一个并行执行的算法(即 CPU 代码,而不是 I/O 操作),
  2. 您的算法必须执行的任务在算法运行时会有所不同(也就是说,在您的算法开始时,它不知道需要执行多少任务),
  3. 在完成这些任务时存在层次关系或父/子关系(也就是说,“父”在其所有子项都完成之前不应被视为完成,如果任何子项失败/取消,则父项也应该失败/取消,即使它的代码没有错误)。

由于绝大多数的并发问题是基于I/O的(不是基于CPU的),并且由于绝大多数的并行场景都是基于数据的并行(不是动态任务并行),而且由于动态任务并行问题可能或者可能没有层次结构,这种情况几乎不会出现。

不幸的是,任务(包括异步任务)之间存在逻辑父/子关系,这导致许多开发人员错误地尝试使用 AttachedToParentasync 标记任务。因此,引入DenyChildAttach标志(防止 AttachedToParent 生效)。

关于c# - AttachedToParent 有哪些用例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43667059/

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