TPLは、タスクスケジューラを使用してタスクを調整します。公式文書によると、デフォルトのタスクスケジューラはスレッドプールを使用しますが、TaskCreationOptions.LongRunning
オプションが表示されると、そのタスク専用のスレッドが作成されます(A)。
質問:現時点では、Visual Studio 2010のMSDNドキュメントの準備ができておらず、現在のオンラインMSDNは完成していません。(A)が正しいか間違っているか誰かが知っていますか?
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