概要 C#のTaskの同時実行つまりTaskSchedulerは、スレッドプールを使って環境や状況に合わせた同時実行数を自動で決めて効率よく実行してくれます。とはいえ、「この処理は負荷を下げたいので、最大2つの同時実行にしたい」など手動で細かい制御をしたい場合も有ると思います。しかし意外とこれを簡単に実現するプロパティなどはなく、TaskSchedulerを継承する必要があったので、そのやり方をまとめます。 最初に結論まとめ LimitedConcurrencyLevelTaskSchedulerクラスを作りました。これで、次のようにTaskFactoryを作成したら、あとはいつも通りにTas…