C# 任务并行库与本机线程同步
这个问题可能是主观的,但我只想知道何时使用TPL以及何时使用基于本机线程的同步(EVNT、等待句柄) 本机线程同步技术将来会过时吗C# 任务并行库与本机线程同步,c#,C#,这个问题可能是主观的,但我只想知道何时使用TPL以及何时使用基于本机线程的同步(EVNT、等待句柄) 本机线程同步技术将来会过时吗 谢谢并行扩展非常适合并行化小任务。并行扩展确实提供了代码构造。例如,ForEach将替换普通的ForEach语句,但将并行执行它。这就是并行扩展的目的所在 当您创建一个成熟的多线程应用程序(例如web服务器)时,仍然必须使用正常的线程和同步。当然,WCF和IIS已经为您解决了这些问题 当然,线程池解决了中间问题。尽可能使用TPL,因为它是一种更干净、更具声明性的方式
谢谢并行扩展非常适合并行化小任务。并行扩展确实提供了代码构造。例如,ForEach将替换普通的ForEach语句,但将并行执行它。这就是并行扩展的目的所在 当您创建一个成熟的多线程应用程序(例如web服务器)时,仍然必须使用正常的线程和同步。当然,WCF和IIS已经为您解决了这些问题
当然,线程池解决了中间问题。尽可能使用TPL,因为它是一种更干净、更具声明性的方式来表达您对并行性的需求 MSDN解释道“TPL动态扩展并发度,以最有效地使用所有可用的处理器。此外,TPL处理工作分区、线程池上线程的调度、取消支持、状态管理和其他低级细节。通过使用TPL,您可以最大限度地提高代码的性能,同时专注于程序设计要完成的工作。”
另请参阅“数据并行性”的好处和其他TPL好处的详细信息。任务并行库主要不是用于线程同步的,它旨在促进更多的任务。TPL旨在促进以下步骤: