TaskCreationOptions.LongRunning选项和ThreadPool

时间:2010-06-23 22:22:02

标签: c# .net-4.0 scheduled-tasks task-parallel-library threadpool

TPL使用任务计划程序来协调任务。根据{{​​3}},默认任务调度程序使用线程池,但如果显示TaskCreationOptions.LongRunning选项,则它将为该任务创建专用线程(A)。

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

2 个答案:

答案 0 :(得分:36)

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

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

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

答案 1 :(得分:14)

据推测,您可以使用“Thread.IsThreadPoolThread”来检查:

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