25

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

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

4

2 回答 2

38

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

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

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

于 2010-06-23T22:44:22.747 回答
15

大概您可以使用“Thread.IsThreadPoolThread”来检查这一点:

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

于 2010-06-23T22:37:43.177 回答