TPL использует Планировщиков задач для координирования задач. Согласно официальному документу, планировщик задач по умолчанию использует Пул потоков, но если TaskCreationOptions.LongRunning
опция представлена затем, она создаст специализированный поток для той задачи (A).
Вопрос: На данный момент документы MSDN для Visual Studio, 2010 не готов и текущий MSDN онлайн, не завершены; кто-либо знает, является ли (A) TRUE или FALSE?
Да, 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