java timer可以更快地运行吗?

时间:2012-04-24 03:26:09

标签: java timer

我目前正在使用java计时器来安排我的程序打印屏幕

timer.scheduleAtFixedRate(new PrintScreen(),0,1);

这是我的代码,它计划使用0s延迟和0.001s / image

进行PrintScreen

由于结果图像在打印屏幕期间仍然有一些滞后,它可以更快地工作。

我目前正在每0.001秒使用java版画面。我已将图像附加为1.jpeg和2.jpeg

但我希望图像输出在某种程度上与image3.jpg,image4.jpg和image5.jpg类似 可以看到微小的运动

1.jpg:http://www.java.net/sites/default/files/1.jpeg

2.jpg:http://www.java.net/sites/default/files/2.jpeg

image3.jpg:http://www.java.net/sites/default/files/image3.jpg

image4.jpg:http://www.java.net/sites/default/files/image4.jpg

image5.jpg:http://www.java.net/sites/default/files/image5.jpg

对此有何建议?提前谢谢你的回复。

=============================================== ===================================更新 这是我的整个打印屏幕代码

        Toolkit tool = Toolkit.getDefaultToolkit();
        Dimension d = tool.getScreenSize();
        Rectangle rect = new Rectangle(d);
        Robot robot = new Robot();
        ss.setScreenCount();
        int index = ss.getScreenCount();
        String screenFileName = "screenshot_" + index + ".jpeg";  
        File f = new File(screenFileName);
        BufferedImage img = robot.createScreenCapture(rect);
        ImageIO.write(img,"jpeg",f);

        int totalClient = ss.getTotalClient();
        for(int i=0;i<totalClient;i++)
        {
            RshScp rsThread = new RshScp(screenFileName,i,ss);
            Thread rs = new Thread(rsThread,"RshScpThread");        
            rs.start();
        }

1 个答案:

答案 0 :(得分:4)

在一秒钟内拍摄1000张截图似乎很难做到,而且考虑到大多数显示器都在接近该速率的情况下更新,因此相当奇怪。看起来你正试图捕捉视频。视频往往在每秒24到60帧之间运行。每秒1000帧有点荒谬。