我有一个基本的foreach
循环,调用一个静态方法,该方法连接到数据库并插入一些数据。但是在不调试应用程序时,它只会遍历集合中的第一项。如果我在foreach
循环上设置断点并调试应用程序,它将遍历集合中的所有项。
如果我设置断点并逐步执行foreach
循环,它将表现出与不调试应用程序相同的行为。
有人知道什么原因会导致这种类型的行为吗?
以下是简化版本的源代码:
List<MyObject> objectlist = new List<MyObject>();
//some code to populate list
foreach(MyObject myobject in objectlist)
{
string a = "a";
string b = "b";
MyLibrary.UpdateDatabase(a, b);
}
我正在使用Visual Studio 2008 SP1。
更新
无论是否调试应用程序,该过程都不会抛出任何异常。