これは以前に尋ねられ、議論されたことは知っていますが、それでもこのシナリオで何を使用するかは明確ではないと思います.
一度に 16 の要求を処理できることがわかっている Web サービスに対して 100 回の呼び出しを行う必要があります (それ以上の要求を受け取っても失敗するわけではありません)。
Parallel.ForEach は、より低レベルの CPU を集中的に使用する呼び出し用であると思います。最適なスレッド数を決定します。Task.Factory はスレッド プールを使用するため、16 未満のスレッド (およびそれ以上) が存在する可能性があります。
もちろん、独自のスレッド プールを作成することもできますが、このシナリオではもっと明白な選択肢はないのでしょうか?