私は、外部フィードからデータをロードして内部コレクションに保存するマルチスレッド アプリケーションに取り組んでいます。これらのコレクションは、外部フィードからすべてのデータを再度ロードすることにより、X 分ごとに 1 回更新されます。これらのコレクションからの追加/削除は他になく、読み取るだけです。
通常、コレクションにアクセスしているすべての場所と同じように、更新中にロックを使用します。
質問:
この場合、並行コレクションは私の人生を楽にしてくれますか? 基本的に私は2つのアプローチを見ます
外部フィードからデータをロードし、もう存在しないアイテムを削除し、不足しているアイテムを追加し、変更されたアイテムを更新します。これは、同時収集の助けを借りて良い解決策だと思います (ロックは必要ありませんよね?)。私の側からのコードが多すぎます。
古いコレクション オブジェクトを新しいオブジェクトでオーバーライドするだけです (例: _data = new ConcurentBag(newData)。ここで、同時コレクションを使用してもまったく利点がないことは確かです。そうですか? ロック メカニズムが必要です。
並行コレクションを使用して、すぐに使用できるソリューションはありますか? 車輪の再発明は二度としたくありません。