查询任务的Result属性会导致线程池创建新线程

时间:2011-04-06 12:03:34

标签: c# .net multithreading

以下是Jeffrey Richter的“CLR via C#”一书的引用:

  

**当另一个任务完成时自动启动新任务**

     

...调用等待或查询任务   任务没有时的结果属性   但很有可能完成了跑步   导致线程池创建一个新的   线程,增加资源使用   并且伤害了可扩展性。

为什么线程池需要创建一个新线程?

1 个答案:

答案 0 :(得分:0)

在本机代码中,您首先要使用CreateThreadpoolWork创建一个工作项,然后使用WaitForThreadpoolWorkCallbacks函数等待它。

在.NET世界中,我会使用TPL,创建任务,然后使用continuation task。将其与TPL TaskScheduler相结合可以为您提供所需的效果。