私の状況は次のとおりです。複数のライター、1つのリーダー、コレクション
複数のスレッドは、同じコレクション(追加と追加範囲)に同時に書き込む必要があります。アイテムの順序は問題ではありません。 すべてのスレッドが完了して(結合)、メインスレッドに戻ったら、すべてのスレッドが完了しているので、実際のロックが不要なforeachスタイルですべての収集データを高速に読み取る必要があります。
「古い日」では、おそらくリスト上でこれに対してリーダーライターロックを使用していましたが、新しい並行コレクションでは、より良い代替手段がないのだろうかと思います。私は、ほとんどの並行コレクションが読者が並行スレッドにいると仮定しているように見えるのは分かりません。
.Net 4.0以上を使用している場合。 ConcurrentBagはあなたの目的を解決するはずです。私はあなたが要素の順序と除去に気をつけなければ最高だと思う。 –
私はそれを見てきましたが、コンカレントバッグのforeachは毎回の読み取りごとにロックペナルティを意味しませんでしたか?古いリーダーライターのロックをより効率的にするには? –
@ハンスとフィリップリエック、あなたは絶対に正しいです。ここで並行コレクションを使用する理由はまったくありません。今私には明らかですが、私は多くのスレッドをスピンアップしなければならなかったという事実によって、盲目的になってしまいました。 Thxをクリアするため:)。 –