1

Thread.sleep(); を使用するたびに do while ループでは、「ループ内で Thread.sleep を呼び出すと、パフォーマンスの問題が発生する可能性がある」というヒントが表示されます。私はこれを他の多くのウェブサイトや本から聞いたことがあります。代わりに使用できるものは何ですか?

コードは次のとおりです。

import javax.swing.*;

public class Delay {

    public static void main(String[] args) throws Exception {
        int difficulty;
        difficulty = Integer.parseInt(JOptionPane
                .showInputDialog("How good are you?\n" + "1 = evil genius...\n"
                        + "10 = evil, but not a genius"));
        boolean cont;
        do {
            cont = false;
            System.out.println("12");
            Thread.sleep(500);

            String again = JOptionPane.showInputDialog("Play Again?");
            if (again.equals("yes"))
                cont = true;
        } while (cont);
    }
}
4

2 に答える 2

-1

Thread.sleepポーリングまたは同様の更新メカニズムを使用することは問題ありません。たとえば、キャンバスを 5 ミリ秒ごとに再描画する場合は、sleep(5). より正確で CPU を軽減するハードウェア タイマーを使用することもできますが、通常のアプローチは正確Thread.sleepです。

于 2013-10-06T22:04:10.133 に答える