gpt4 book ai didi

java - 等待而不获得输入

转载 作者:行者123 更新时间:2023-11-30 08:13:25 24 4
gpt4 key购买 nike

如果您按“R”,金额应增加 1,但如果您在程序“等待”时按“R”,则不应检测到输入。但是通过延迟和 sleep ,程序会跟踪输入并在延迟后执行输入。是否有任何函数可以等待而不获得任何输入?

import java.util.concurrent.TimeUnit;
int amount;

void setup()
{
size(200, 200);

}
void draw()
{
background(#FEF4E9);
fill(#FF0000);

if (key == 'r'){
//delay(500);
try{
Thread.sleep(500);
}catch(InterruptedException e){
System.out.println("got interrupted!");
}
amount++;
println("amount: "+amount);
}
}

最佳答案

Thread.sleep(500); 只会阻塞线程 500 毫秒;它不会阻止线程接收操作系统消息,例如键盘输入。消息将简单地放入消息队列中,直到线程解除阻塞,此时它们将运行。如果您尝试忽略特定时间段内的用户输入,则需要自己跟踪时间并忽略该持续时间段内的输入。

long ignoreTime = System.currentTimeMillis() + 500;
...
if (System.currentTimeMillis() > ignoreTime) { // only process after 500 timeout
doProcessingForR();
}

关于java - 等待而不获得输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30019685/

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