gpt4 book ai didi

.net - TaskFactory.StartNew 与 ThreadPool.QueueUserWorkItem

转载 作者:行者123 更新时间:2023-12-03 10:43:10 29 4
gpt4 key购买 nike

显然是 TaskFactory.StartNew .NET 4.0 中的方法旨在替代 ThreadPool.QueueUserWorkItem ( according to this post, anyway )。我的问题很简单:有谁知道为什么?

是否TaskFactory.StartNew有更好的表现吗?它使用更少的内存吗?还是主要是为了Task提供的附加功能类(class)?在后一种情况下,是否 StartNew可能比 QueueUserWorkItem 的性能更差?

在我看来 StartNew实际上可能比 QueueUserWorkItem 使用更多的内存,因为它返回 Task对象每次调用,我希望这会导致更多的内存分配。

无论如何,我很想知道哪个更适合高性能场景。

最佳答案

性能是...取决于。如果您正在执行大量并行任务,那么 .net 4 任务将执行得更好,并为您提供更细粒度的控制(更强大的取消、同时等待多个任务的能力、创建父/子任务关系的能力、指定 LongRunning 等.. 等.. 等..)

此外,指定您自己的 TaskScheduler 的能力意味着您可以根据需要对其进行自定义。内置的任务调度程序比旧的 ThreadPool 更能感知多核。

至于使用更多的内存。每个线程至少保留 1MB 的内存,用于存储任务对象的少量内存是无关紧要的。我真的会认为这是你最后的担忧。

关于.net - TaskFactory.StartNew 与 ThreadPool.QueueUserWorkItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3047268/

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