1. ホーム
  2. c#

[解決済み] スレッドの作成 - Task.Factory.StartNew vs new Thread()

2022-11-22 10:18:43

質問

.Net 4 の新しいスレッドと並列ライブラリについて学んでいるところです。

過去には、私は次のように新しいスレッドを作成していました(例として)。

DataInThread = new Thread(new ThreadStart(ThreadProcedure));
DataInThread.IsBackground = true;
DataInThread.Start();

これでできるようになりました。

Task t = Task.Factory.StartNew(() =>
{
   ThreadProcedure();
});

違いがあるとすれば、それは何でしょうか?

ありがとうございます。

どのように解決するのですか?

大きな違いがあります。タスクはスレッドプール上でスケジュールされ、適切であれば同期的に実行することも可能です。

長時間実行されるバックグラウンドワークがある場合、正しいタスクオプションを使用してこれを指定する必要があります。

明示的なスレッド処理よりもタスク並列ライブラリの方がより最適化されています。また、Continuationのようなより多くの機能があります。