100K アイテムを含む並行コレクションがあります。コレクション内の各アイテムの処理には、最短で 100 ミリ秒、最長で 10 秒かかります。処理を並列化することで処理を高速化し、100 台のミニオンで同時に処理を実行したいと考えています。また、この処理が発生したときに、完了したパーセンテージだけでなく、特定のデータを UI に報告する必要もあります。
並列化されたサブタスクが、池に投げ込まれたパンを攻撃するミノーの群れのように、並行コレクションをかじりたいと思っています。並列化されたタスクに並行コレクションを公開するにはどうすればよいですか? 通常のループを作成して、ループ内で非同期タスクを起動し、それに IProgress を渡すことはできますか? これには並行コレクションも必要ですか?
Parallel.ForEach を使用することをお勧めしましたが、並列処理の度合いによって確立された各サブプロセスが、処理が完了した後だけでなく、処理する各アイテムと共にカスタム オブジェクトを UI に報告する方法がわかりません。100K アイテムのシェアを処理しています。