我需要运行一个无限循环,直到用户告诉它中断。例如......
while(true)
{
someFunction();
Thread.sleep(4000);
}
如您所见,我希望每4秒钟连续运行一次该功能。但是当我希望它停止时,我该如何摆脱循环呢?
提前致谢!
答案 0 :(得分:1)
someFunction可以是布尔值吗?如果是的话
if (someFunction()) break;
答案 1 :(得分:1)
你有两个选择,你可以使用break;或者为你的while循环添加一个布尔值
1:
while(userWantsToKeppGoing)
{
someFunction();
Thread.sleep(4000);
}
2:
while(true)
{
if(userDoesntWantToKeepGoing) break;
someFunction();
Thread.sleep(4000);
}
答案 2 :(得分:0)
在while中使用静态volatile变量,并在想要停止线程时从其他线程设置它:
while(Someclass.staticVariable)
{
someFunction();
Thread.sleep(4000);
}
从另一个线程来打破这个循环
Someclass.staticVariable = false;
答案 3 :(得分:0)
您可以使用全局布尔变量作为标志,someFunction()可以更改,并执行以下操作:
while(globalFlag)
{
someFunction();
Thread.sleep(4000);
}
答案 4 :(得分:0)
查看中断语句。
查看 this SO q / a。