私の問題は次のとおりです。2 つのコード ブロックがあります。1 つのブロックは、タイマーが 10 秒に達した場合にのみ実行します。そのため、コードの一部で TimerTask を呼び出します。 TimerTask 関数に.. (run() 関数).. たとえば、Boolean 変数を返すなど、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() でスタックすることです..