【发布时间】:2013-06-03 23:27:15
【问题描述】:
我在使用 C# 中的 while 循环时遇到了一些问题。假设每周发生一次。
我正在循环通过一个 SQL Server 数据阅读器,我阅读了简单的字符串、双精度数等......我不明白为什么会偶尔发生这种情况。如果我的代码有问题,那么它的性能应该总是很差。
更具体地说,发生这种情况时,当我设置断点时,线程会在 3 或 4 秒后中断。最奇怪的是,如果我按 F5 或者如果我“逐步”循环,它会花费更少的时间!
这真的很奇怪,让我发疯。
我想知道是否有人遇到过这种奇怪的交易。
提前感谢您的回复!
PS:while 循环由特定线程(不是主线程)执行。
PS 2:这是我的代码
reader = DBConnect.GetInstance.ExecuteReader(request.ToString(), out connection, timeOut);
while (reader.Read())
{
SourceInst sourceInst = new SourceInst();
sourceInst.Load(reader);
sourceInstList.Add(sourceInst);
}
【问题讨论】:
-
请出示代码。在不知道代码长什么样的情况下很难为您提供帮助。这很可能是暂时的网络问题,或者数据库繁忙等。
-
这个问题更有可能与您的 SQL Server 数据库有关,而不是您的 C# 代码,但根据您发布的信息,我们只能猜测。
-
你怎么知道它的
foreach块运行缓慢?你确定你的线程是同步的吗? -
正如@recursive 所说,如果您通过网络循环访问 SQL 数据,显然您会遇到数据库或网络的间歇性性能不佳。
-
这和多线程有什么关系?我的意思是,代码中没有任何内容表明多线程是负责任的......
标签: c# multithreading performance while-loop