【发布时间】:2010-11-30 12:58:03
【问题描述】:
我有一个基本的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)
更新
无论是否调试应用程序,该进程都不会引发任何异常。
【问题讨论】:
-
请发布一个小而完整的示例来演示该问题。
-
这可能完全关闭,但可能是您需要清理,并且调试箱中的程序集版本与应用程序箱中的不同
-
你在使用多线程吗?
-
确保你没有 try..catch 围绕可能正在吃异常的 foreach?
-
@Aaron Daniels - 我没有使用多个线程
标签: c# visual-studio-2008 debugging foreach