SQLテーブルからデータを読み取り、処理し、終了したらDBのフィールドを更新する(processed = trueに設定)という単純なタスクがあるため、すべてのレコードを1回だけ処理する必要があります。
マルチスレッド化するためにどのような手法を使用できますか?つまり、複数のスレッドでテーブルからデータを読み取ります。
SQLテーブルからデータを読み取り、処理し、終了したらDBのフィールドを更新する(processed = trueに設定)という単純なタスクがあるため、すべてのレコードを1回だけ処理する必要があります。
マルチスレッド化するためにどのような手法を使用できますか?つまり、複数のスレッドでテーブルからデータを読み取ります。
オーバーラップせずに複数のスレッドでデータを読み取りたい場合は、ページングを試してみてください。各スレッドに異なるページを読み取らせることができます。たとえば、最初のスレッドに最初の20レコードを読み取らせ、それらの各レコードを処理してから、それぞれにprocessed = trueを設定し、2番目のスレッドが次の20レコードに対して同じことを行うようにすることができます。
複数のスレッドでのページングの詳細については、このリンクを確認してください。 http://ericniemiec.wordpress.com/2010/06/10/paging-records-in-sql-server-2008-for-processing-database-records-on-different-threads-in-c/
efを使用してDataContextを使用する場合は、DataContextがスレッドセーフではないことを知っておく必要があります。MsSQLのようなデータベース管理システムはスレッドセーフです。私はこの質問を読んだあなたを好む