TaskCreationOptions.LongRunning option and ThreadPool
TPL uses Task Schedulers to coordinate tasks. According to official document, default task scheduler uses Thread Pool, but if TaskCreationOptions.LongRunning
option is presented then it will create a dedicated thread for that task (A).
Question: As of now MSDN documents for Visual Studio 2010 ar开发者_StackOverflowe not ready and current online MSDN is not finalized; does anyone knows if (A) is true or false?
Yes, LongRunning
forces the creation of a new thread outside the pool. Here's some pseudo-disassembled code from the latest framework version:
...
if (task.Options HasFlag LongRunning) then
create new Thread thread
thread.Start(task)
...
Edit: converted from ugly C# to pseudocode.
Presumably you can check this by using "Thread.IsThreadPoolThread":
http://msdn.microsoft.com/en-us/library/system.threading.thread.isthreadpoolthread.aspx
精彩评论