.NET 4.0中的TaskFactory.StartNew
显然是用来代替ThreadPool.QueueUserWorkItem
(according to this post, anyway)。我的问题很简单:有谁知道为什么?TaskFactory.StartNew vs ThreadPool.QueueUserWorkItem
请问TaskFactory.StartNew
有更好的表现吗?它使用更少的内存吗?还是主要用于Task
课程提供的附加功能?在后一种情况下,StartNew
是否可能有差表现比QueueUserWorkItem
?
在我看来,这StartNew
实际上会潜在地使用更内存比QueueUserWorkItem
,因为它返回一个Task
对象与每一个电话,我可以预料,导致更多的内存分配。
无论如何,我很想知道哪个更适合高性能场景。
AFAIK默认TaskScheduler使用ThreadPool,并且当您需要多核支持时,它们之间没有区别。这家伙甚至做了一些测试:http://stackoverflow.com/a/5219311/152291 – prostynick 2013-07-19 10:11:11