我正在开发一个程序,根据我在KeyEvent中设置的变量退出循环。 这是它的外观
foldr
然后,在关键监听器中,我执行以下操作:
while(System.nanoTime() - startTime < 3000000000L) // 3 second timer
{
if(rightPressed)
break;
}
我遇到的问题是在3秒钟之前循环永远不会退出,即使我按下右箭头键,但“得分”变量也会相应更新。我对嵌入式系统比较熟悉,关键事件会中断当前运行的线程吗?或者它们如何运作?
答案 0 :(得分:0)
更改你的while循环以拥有多个条件,这样你就可以摆脱它 if while while循环中的条件。
while(System.nanoTime() - startTime < 3000000000L && !rightPressed)
在keyEvent
内。您正在检查repeatcheck
,如果值为true
,codes
的其余部分将因return
语句而无法执行。这意味着rightpressed
永远不会成真。将您的代码更改为keyevent
至
rightPressed = true;
repeatCheck = true;
if(matchRight){
score++;
}else{
score = 0;
}
if(repeatCheck){
return;
}
由于您正在处理thread
,因此在您的帖子中按thread
键executed
之前,您的right
可能是thread.sleep()
这将给你一些时间来按right key
。