2

以下方法有什么区别?

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


 new Thread(CustomConnection).Start();

两者都将创建新线程来执行工作。在什么意义上线程与任务不同?
性能方面哪个更好?

4

1 回答 1

4

关键区别在于任务方法将利用线程池。

这很重要,因为这意味着您将只创建绝对必要的线程。在可能的情况下,将重用现有线程,从而无需创建新线程即可获得性能优势。

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

于 2012-11-21T08:49:02.147 回答