ホームページ > バックエンド開発 > C++ > 「コレクションが変更されましたが、列挙操作はWCFのエラーを実行しない場合がありますか?

「コレクションが変更されましたが、列挙操作はWCFのエラーを実行しない場合がありますか?

Linda Hamilton
リリース: 2025-02-02 03:56:08
オリジナル
1021 人が閲覧しました

How to Fix the

トラブルシューティング「コレクションが変更されました。列挙操作はWCFでエラーを実行しない場合があります

イライラする「コレクションが変更されました。列挙操作が実行されない場合があります」エラーは、デバッグするとしばしば消え、診断が困難になります。この記事では、特定のWCFサーバーシナリオを検討し、ソリューションを提供しています。

この問題は、辞書を使用してデータイベントサブスクライバーを追跡するために辞書を使用してWindowsサービスで発生します。 クライアントのIDを削除する(unsubscription)により、

メソッドがこのエラーをスローすることがあります。 NotifySubscribers可能性の高い犯人は、

などのコールバックであり、

ループ中にサブスクライバー辞書を変更します。 これを解決するには、SignalDataループを変更することを検討してください:NotifySubscribers foreach元のコード:

修正コード:
foreach(Subscriber s in subscribers.Values)
ログイン後にコピー

foreach(Subscriber s in subscribers.Values.ToList())
ログイン後にコピー
を使用して

のコピーを作成することにより、列挙はループの開始時に辞書の状態のスナップショットで動作します。 元の辞書のその後の変更は列挙に影響しないため、subscribers.Valuesコールバックが問題の原因である場合、エラーが排除されます。 これにより、ループが外部の変更から分離され、スムーズな実行が確保されます。

以上が「コレクションが変更されましたが、列挙操作はWCFのエラーを実行しない場合がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート