0

我刚开始用 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());
    }

}

我究竟做错了什么?

谢谢 !

4

1 回答 1

3

这很可能与您未包含在 foreach 块中的代码有关 - 您在错过的代码中做了什么?如果您正在修改屏幕集合(添加或删除),这将导致您看到的异常。

于 2012-05-20T16:41:45.137 回答