新线程和任务之间的区别是否开始新?

时间:2012-11-21 08:35:42

标签: c# multithreading task-parallel-library

以下方法有什么区别?

 Task.Factory.StartNew(() => CustomConnection());  


 new Thread(CustomConnection).Start();

两者都将创建用于执行作业的新线程。在什么意义上线程与任务不同?
性能明智哪个更好的选择?

1 个答案:

答案 0 :(得分:4)

关键的区别在于Task方法将使用线程池。

这很重要,因为这意味着您只需要创建尽可能多的线程。在可能的情况下,将重用现有线程,从而提供不必创建新线程的性能优势。

如果要创建大量线程,对于相对较短的运行操作,上述好处变得更加重要。但是,如果操作是一个或几个长期运行的操作,那么它的好处就更少了。