我有一个基本的foreach
循环,该循环调用一个静态方法,它可以连接到数据库并插入一些数据。出于某种原因,当我运行应用程序而不进行调试时,它只会迭代集合中的第一项。如果我调试应用程序并在foreach
循环中设置断点,它将循环访问集合中的所有项目。foreach循环不遍历列表中的所有项目 - C#
如果我设置了一个断点并跨越了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)
更新
的过程中不会引发任何异常带或无需调试应用程序。
请发布一个小而完整的例子来演示这个问题。 – 2009-09-22 19:57:36
这可能完全关闭,但是它可能是你需要一个干净的,在调试箱中有比在应用程序bin中有不同的生成版本 – ryber 2009-09-22 20:03:30
你使用多线程吗? – 2009-09-22 20:06:05