【发布时间】:2016-01-29 01:30:45
【问题描述】:
我想知道是否有人知道如何避免在以下代码中重新运行 If 语句
int x = 1;
load_page(standurl, 0);
firstentryOnload = UrlList[0];
for (int i = 1; i <= lastPage; i++)
{
if (UrlList.Count > setting_EPP) table_populate(0);
System.Threading.Thread.Sleep(delay);
load_page(standurl, i);
if (x > 10)
{
//refresh firstpage,check for new data
System.Threading.Thread.Sleep(delay);
x = 1;
}
x++;
}
我想运行 table_populate(0);当 UrlList.Count > setting_EPP
没有“如果/那么”检查每个循环。
基本上我希望它运行一次 If 语句然后停止存在。
我知道如何停止 if/then 语句的运行,但我不希望它在运行后继续检查
编辑:循环在后台运行,目前大约需要 4 小时才能完成。我一直在尝试找到某种方法将其置于循环之外,但是我运气不佳。我唯一能想到的就是在运行上述代码的线程旁边运行另一个线程,每隔几分钟运行一次 If 语句?
【问题讨论】:
-
你不能把逻辑从循环中拿出来吗?
-
将
if语句移出循环?if (UrlList.Count > setting_EPP) table_populate(0); for (int i = 0....) -
我一直在试图弄清楚如何将它带出循环,但这在后台线程中运行。所以我必须计时吗?或者也许我可以创建一个只触发一次的事件?但我相信这只会导致我使用不同的 if 语句。代码永远运行,直到程序关闭或到达最后一页(大约 11200,每 1.3 秒(大约 4 小时)一页)
-
如果您有其他问题未包含在您的问题中,edit 您的问题,以便我们可以使用它们,因此我们不会浪费时间来帮助您信息不完整。
-
System.Threading.Thread.Sleep(x++ % 10 ? 0 : 延迟); ?
标签: c# if-statement for-loop