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());
}
}
私は何が間違っているのですか?
ありがとうございました !