我很好奇,如果可以安全地在for循环中做一个空的while循环,以便阻止它继续到x为真,在for循环中做一个空的while循环是否安全?
例如(更新为下载为例):
string[] links = new string[3] {"http://url.com/download1.rar", "http://url.com/download2.rar", "http://url.com/download3.rar"};
public void download(String link) {
// download link
x = false;
}
再后来某处
for (int i; i < links.length; i++) {
download(links[i]);
x = true;
while (x) {
// Do nothing so the for loop basically freezes until download is finished
}
// Do something else or just end it here and continue the loop
}
请注意:这是一个简单的例子,下载已经完全无关的问题,我只是试图帮助你帮助我理解这一点
或者有没有更好的方法来完成这个?
编辑:编辑的代码,以显示我在想什么
我认为它会被卡在那里,尝试添加一个'突破; '语句来确保它会离开while循环 –
这是什么?这种结构对于多线程应用程序是有意义的,但多线程有很多更好的方法来等待单独的工作完成:互斥量,信号量等 – Gobra
当这段代码永远循环时,你期望什么代码会让x为真?代码是如何运行的? –