ファイルからデータを読み取り、解析/変換してからデータベースに挿入するために、BlockingCollection に裏打ちされたプロデューサー/コンシューマー パターンを使用しています。私が持っているコードは、ここにあるものと非常によく似ています: http://dhruba.name/2012/10/09/concurrent-producer-consumer-pattern-using-csharp-4-0-blockingcollection-tasks/
ただし、主な違いは、コンシューマ スレッドがデータを解析するだけでなく、データベースに挿入することです。このビットは遅く、スレッドがブロックされていると思います。
この例では、2 つのコンシューマ スレッドがあります。ある程度インテリジェントな方法でスレッドの数を増やす方法があるかどうか疑問に思っていますか? スレッドプールがこれを行うと思っていましたが、それがどのように行われるかを把握できないようです。
あるいは、コンシューマ スレッドの数をどのように選択しますか? 2 は私には正しくないようですが、最良の # が何であるかはわかりません。消費者スレッドの数を選択する最良の方法について考えていますか?