Web浏览器中的Thread.sleep问题

时间:2011-09-08 05:27:26

标签: java web-applications browser applet japplet

基本上,我编写了一个JApplet,现在我需要设置一个恒定的帧速率。我实现了一个非常简单的代码段,它调用Thread.sleep:

long sleep = (long) (20e6 - System.nanoTime() + t);
if(sleep > 0){
    try{
        Thread.sleep((long) (sleep / 1e6));
    } catch (Exception e) {}
}
t = System.nanoTime();

当我在Eclipse中运行时,一切都很好,但是当我在浏览器中运行它时,帧速率变得非常不稳定,看起来它是滞后的。在浏览器中,它运行正常,没有Thread.sleep调用,只是比我需要它更快。

对于为什么会这样或者解决这个问题的方法的任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

作为替代方案,请考虑javax.swing.Timer,如here所示。