gpt4 book ai didi

c# - 如何避免 If/Then 语句检查其 "IF"

转载 作者:太空宇宙 更新时间:2023-11-03 18:26:32 24 4
gpt4 key购买 nike

我想知道是否有人知道如何避免在以下代码中重新运行 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/Then”检查每个循环。

基本上我希望它运行一次 If 语句然后停止存在。

我知道如何阻止 if/then 语句运行,但我不希望它在运行后继续检查

编辑:循环在后台运行,目前需要大约 4 小时才能运行完成。我一直在尝试找到某种方法将其置于循环之外,但是我运气不佳。我唯一能想到的是在运行上述代码的线程旁边运行另一个线程,每隔几分钟运行一次 If 语句?

最佳答案

您可以将条件包装在委托(delegate)中,并在满足条件时替换委托(delegate):

 Action check;
check = ()=> {
if (UrlList.Count > setting_EPP)
{
table_populate(0);
check = () => {}; // replace check with no-op.
}
};
....
for(...)
{
check();
...
}

此代码由受过培训的专业人员在封闭类(class)中编写,请勿在家尝试(或任何非自学代码)。 :)

更传统的模式 - 有标志说“满足条件,不再检查” - 但实际上它需要 if 语句。

注意:如果此代码检查共享日期,您需要使用 lock 或其他同步方法(即并发集合之一)。

关于c# - 如何避免 If/Then 语句检查其 "IF",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33405223/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com