首頁 >後端開發 >C++ >如何修復'收集的修改;枚舉操作可能不會執行” WCF中的錯誤?

如何修復'收集的修改;枚舉操作可能不會執行” WCF中的錯誤?

Linda Hamilton
Linda Hamilton原創
2025-02-02 03:56:081024瀏覽

How to Fix the

>故障排除“集合已被修改; 令人沮喪的“收集”被修改;枚舉操作可能不會執行”在調試時經常消失,從而使診斷困難。本文研究了特定的WCF服務器方案並提供解決方案。>

使用字典在Windows服務中出現問題,以跟踪數據事件訂閱者。 刪除客戶端的ID(未取消標準)有時會導致

進行此錯誤的方法。

可能的罪魁禍首是一個回調,例如NotifySubscribers,在

循環期間修改訂閱詞典。 要解決這個問題,請考慮更改

循環:SignalData NotifySubscribers原始代碼:foreach

修改的代碼:

<code class="language-csharp">foreach(Subscriber s in subscribers.Values)</code>

>通過使用

>創建
<code class="language-csharp">foreach(Subscriber s in subscribers.Values.ToList())</code>
的副本,枚舉在循環開始時在字典狀態的快照上運行。 對原始字典的任何後續修改都不會影響枚舉,從而消除了錯誤的回調是問題的來源。 這將循環與外部更改隔離,從而確保平穩執行。

>

以上是如何修復'收集的修改;枚舉操作可能不會執行” WCF中的錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn