我有一个带塞子的while循环:
public Myloop()
{
bool execute == true;
While (execute == true)
{
// do some stuff
if (condidtion)
{
execute == false;
}
}
}
我停止后从另一个函数调用:
Myloop.execute = true;
这足以重启循环吗?如果没有,我怎么能从另一个功能轻松的方式重新启动它?
答案 0 :(得分:2)
您感到困惑的是==
和=
运营商,==
用于比较,=
用于分配。阅读C# Operators。
public void Myloop()
{
bool execute = true;
while (execute == true)
{
// do some stuff
if (condition)
{
execute = false;
}
}
}
更简单的方法是使用break
,因为您没有返回execute
字段的值。一旦满足条件,while
循环将终止。
while (true)
{
// do some stuff
if (condition) break;
}
您使用Myloop();
而不是Myloop.execute = true;
来调用该方法。
答案 1 :(得分:2)
不,一旦while循环完成,它将不会重新开始,直到你再次运行Myloop()
函数:
public void RunLoopTwice(){
MyLoop();
MyLoop();
}
public void Myloop()
{
bool execute = true;
while (execute == true)
{
// do some stuff
if (condition)
{
execute = false;
}
}
}
通常,代码也以同步顺序执行,因此当时只执行1段代码。使用async/await
,Task
或Thread
,您可以同时运行多段代码。如果您正在使用其中任何一项,则需要确保正确lock
段代码以避免任何竞争条件。
答案 2 :(得分:0)
你可以使用两个标志,但是这个代码将在不同的线程上运行,因为这个代码将进入无限循环。
对于前。
<?php
foreach ($date as $k => $v){
echo "<li>".$v['day']." - ".$v['start_time']." - ".$v['end_time']."</li>";
} ?>
完成您的需求后,请将doLoop设为false