c# - 新线程和新任务之间的区别?

标签 c# multithreading task-parallel-library

以下方法有什么区别?

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


 new Thread(CustomConnection).Start();

两者都会创建新线程来执行作业。线程与任务有何不同?
就性能而言,哪个是更好的选择?

最佳答案

主要区别在于任务方法将利用线程池。

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

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

关于c# - 新线程和新任务之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13489242/

相关文章:

c++ - 对于短共享操作和少数独特操作,是否有任何共享互斥锁的方法?

c# - 异步任务的 NUnit 测试在 C# 中失败

c# - Geocode api OVER QUERY LIMIT 由于并行

c# - 图像到字节数组 - ExternalException

python - 从 tkinter gui 停止 python 线程

c# - 在 Selenium C# 中检索 <span>Text</span> 之间的文本

c++ - C++ 11:将 vector 元素作为线程传递到线程函数中

c# - 自定义任务计划程序按日期时间启动任务

c# - 在 Selenium C# 中获取表格单元格值

c# - 使用平均值返回 "The sequence has no elements"