C# में WCF में डिक्शनरी के साथ काम करते समय "Collection was modified; enumeration operation may not execute" त्रुटि
नमस्ते सहकर्मियों! मैं एक WCF सर्विस लिख रहा हूँ जो एक साथ कई क्लाइंट से अनुरोध प्रोसेस करती है। सर्विस के अंदर मैं डेटा कैशिंग के लिए एक स्टैटिक डिक्शनरी `Dictionary` का उपयोग कर रहा हूँ। जब क्लाइंट अनुरोध भेजते हैं, तो मैं कभी-कभी इस डिक्शनरी को अपडेट करता हूँ (एलिमेंट जोड़ता/हटाता हूँ) और साथ ही इसे `foreach` लूप में पढ़ता हूँ। अचानक मुझे एक्सेप्शन मिलता है: "Collection was modified; enumeration operation may not execute"।
यहाँ सरलीकृत कोड है:
```csharp
public class MyService : IMyService
{
private static Dictionary _cache = new Dictionary();
public string GetData(int key)
{
// कभी-कभी डिक्शनरी में एडिशन होता है
if (!_cache.ContainsKey(key))
{
_cache.Add(key, FetchFromDatabase(key));
}
// दूसरी जगह, जैसे कैश क्लीन करने वाले बैकग्राउंड मेथड में
// foreach (var item in _cache) { ... } — यहाँ एक्सेप्शन आता है
return _cache[key];
}
private void CleanCache()
{
// ओ
}
}
```