1

約 8000 個のアイテム (ファイル パス) を含む C# リストがあります。これらすべてのアイテムに対してメソッドを並行して実行したいと考えています。これには、以下の 2 つのオプションがあります。

1) リストを小さなチャンク (それぞれ 500 サイズなど) に手動で分割し、これらの小さなリストのアクションの配列を作成してから、以下のように Parallel.Invoke を呼び出します。

    var partitionedLists = MainList.DivideIntoChunks(500);
    List<Action> actions = new List<Action>();
    foreach (var lst in partitionedLists)
    {
      actions.Add(() => CallMethod(lst));
    }
    Parallel.Invoke(actions.ToArray())

2) 2 番目のオプションは、以下のように Parallel.ForEach を実行することです。

Parallel.ForEach(MainList, item => { CallMethod(item) });
  • ここで最良の選択肢は何ですか?
  • Parallel.Foreach はどのようにリストを小さなチャンクに分割しますか?

提案してください、事前に感謝します。

4

1 に答える 1