エラー "コレクションが変更されました。列挙操作は、ループの実行中に変更されたコレクションをループが反復すると、列挙操作が発生しない場合があります。 これは、ループ自体内のコレクションまたは別のスレッドからアイテムを追加または削除するときにしばしば発生します。
foreach
提供された例は、
メソッドのこのエラーを示しています。この問題は、NotifySubscribers()
メソッドに起因しており、subscribers
辞書を間接的に変更している場合があります。 これは、サブスクライバーの追加または取り外しをトリガーした場合に発生する可能性があります。
SignalData
ソリューションは、ループを入力する前にコレクションのコピーを作成することですsubscribers
。 これにより、元のコレクションの変更がループの反復に影響を与えることができなくなります。
NotifySubscribers()
SignalData
のスナップショットを含む新しいリストが作成されます。
辞書の変更がエラーを引き起こさないようにします。 これにより、安全で信頼できる列挙が保証されます
以上がなぜ私の「foreach」ループスローA「コレクションが変更されました。列挙操作は「エラー」を実行しない可能性がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。