1

私の問題は次のとおりです。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() でスタックすることです..

4

2 に答える 2