0
我剛剛開始在C#中編程,並且我偶然發現了一個小問題 - 鎖定似乎不起作用,並且我收到了一個「集合被修改後枚舉器被實例化。「例外。C#鎖定在調用的方法上不起作用
我的代碼基本上是這樣的:
private static object myLock = new object();
private Stack<MyObject> myObjects;
....
// Method that throws an exception
public void Update()
{
lock(myLock)
{
foreach (MyObject ob in myObjects)
{
ob.Update(); // has a foreach loop of it's own
}
}
}
// Method invoked by a click event
public void InvokedMethod()
{
lock(myLock)
{
myObjects.Push(new MyObject());
}
}
我在做什麼錯?
謝謝!
你在做什麼'foreach'?那麼爲什麼該部分足夠重要,如果你只是遍歷'screen'而不是'myObjects'呢? – Oded
請顯示更多代碼。你可能在循環中調用'InvokedMethod'? –
嘗試用空的foreach或只在foreach中打印某些內容到控制檯 – kravemir