我有一個基本的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