【发布时间】:2013-08-25 17:42:28
【问题描述】:
我的问题是:我有两个代码块。一个代码块只有在 Timer 达到 10 秒时才执行。所以我用这段代码调用 TimerTask。另一个代码块只有在我不执行的情况下才执行'不要进入 TimerTask 函数..(run() 函数).. 有没有办法知道 TimerTask 是否已完成执行,例如返回一个布尔变量?我正在用 Java 编程。
我试过了:
TimerTask emd = new EsperaMensagemDigitada(outgoing, incoming);
timer.schedule(emd, 10000);
if(emd.cancel() == true){
messageOut = userInput.readLine();
outgoing.println(messageOut + " [Sua vez]");
System.out.println("Aguardando resposta...");
outgoing.flush();
}
但它似乎总是会执行 if 子句中的代码..所以我还没有解决我的问题..
这个问题的另一部分是我有这个代码:
messageOut = userInput.readLine();
我想,如果用户在 10 秒内没有输入任何消息,我会打印一条默认消息,如果他在 10 秒内输入了一条消息,我会打印他的消息。问题是我卡在 userInput.readLine() 上,等待输入..
【问题讨论】:
-
一种方式:给运行在任务属性改变的代码提供支持,这样当它改变状态时你可以通知监听器。