TaskCreationOptions.LongRunning选项和ThreadPool

TPL使用任务计划程序来协调任务。 根据官方文档 ,默认任务调度程序使用线程池,但如果出现TaskCreationOptions.LongRunning选项,则它将为该任务创建专用线程(A)。

问题:截至目前,Visual Studio 2010的MSDN文档尚未就绪,当前的在线MSDN尚未最终确定; 有谁知道(A)是真还是假?

是的, LongRunning强制在池外创建一个新线程。 这是来自最新框架版本的一些伪反汇编代码:

 ... if (task.Options HasFlag LongRunning) then create new Thread thread thread.Start(task) ... 

编辑:从丑陋的C#转换为伪代码。

大概你可以使用“Thread.IsThreadPoolThread”检查这个:

http://msdn.microsoft.com/en-us/library/system.threading.thread.isthreadpoolthread.aspx