オブジェクトの大規模なコレクションとそれらの順次読み取りを扱っています。これらの行に沿ったほとんどの質問はマルチスレッドに関するものであることがわかりましたが、配布可能なライブラリの誤用によるスレッド自体のエラーにもっと関心があります.
ライブラリ内のシステムは、潜在的に大規模なオブジェクトのコレクションを管理し、ある時点で、このコレクションの順次読み取りを実行し、各要素に対して操作を実行します。ライブラリの外に拡張できる要素の実装によっては、オブジェクトがコレクションから自身を削除しようとする場合があります。
これをオプションにしたいのですが、コレクションが順次読み取られているときにこれが発生すると、エラーが発生する可能性があります。読み取り中にコレクションの内容をロックし、順次読み取りが終了した後に実行されるスケジュールに削除要求を配置できるようにしたいと考えています。オブジェクトはコレクションへのパブリック アクセスを持たないため、削除リクエストはシステムを通過する必要があります。isReading フラグを使用することもできますが、もっと洗練された構造があるのではないかと思います。
C# または .NET はこれを行うためのツールを提供していますか? おそらくリストの内容をロックして、順次読み取り中に削除要求を傍受できるようにしますか? または、このシナリオではその動作を最初から実装する必要がありますか?