次の非常に単純なシナリオがあります。一部のデータは、パーティション化できるDB(かなり大きなコレクション)に書き込む必要があります。しかし、私には2つの問題があります。
簡単な方法:プログレスバーを印刷するオプションが必要です。これにより、これまでに挿入されたレコードの数を知ることができます(スレッド間での共有カウンターのようなものです)。
難しいもの:各レコードにはタイムスタンプを付ける必要があります。タイムスタンプには開始時刻と間隔があります。残念ながら、タイムスタンプはレコードの一部ではありませんが、シーケンシャルプログラミングでは、現在のタイムスタンプを特定の間隔でインクリメントすることで簡単に計算できます。
これまでのところ、問題は、上記の制約を適切に実装する方法ですか?反復を促進するときに実行されているコードからループ本体を分離することはどういうわけか可能ですか(++i
またはnewTimeStamp = oldTimeStamp.AddSeconds(...)
、並列化されるループ本体とは対照的に、その種のコードは常に単一のスレッドで実行されますか?可能であれば、コードスニペットは非常に役立ちますが、ポインタ/名前/キーワードさえも取得できます。ありがとうございます。