繁体   English   中英

java.awt.Robot-屏幕截图需要多少时间

[英]java.awt.Robot - How much time screenshot takes

我只是面临一个奇怪的问题。 如我所知,屏幕捕获代码花费的时间不固定:

startTime = System.currentTimeMillis();                 

endTime   = System.currentTimeMillis();
totalTime = endTime - startTime;
System.out.println(this.getId()+" A: TIME TAKEN BETWEEN SCREENSHOTS: "+totalTime);


java.awt.image.BufferedImage image = new java.awt.Robot().createScreenCapture(new java.awt.Rectangle(250,150,500,500));

endTime   = System.currentTimeMillis();
totalTime = endTime - startTime;
System.out.println(this.getId()+" B: TIME TAKEN BETWEEN SCREENSHOTS: "+totalTime);

这是很奇怪的原因,有时是108mls,下一次是480mls :(因此很难确定截图算法:S

所以我的问题是...如何找出屏幕截图将花费什么时间,或者如何使屏幕截图时间仅在0.5秒内可修复(受限制)?

PS

  • 杰瑞1.7

  • 杰克1.7

  • 操作系统:Linux

谢谢

我不确定您要完成的工作,但我认为您可能无法限制代码执行的时间,也可以强制其运行少于500毫秒。

也许以下可能是该问题的解决方案?

您可以在另一个线程中执行创建屏幕截图的任务,然后在主线程中可以检查所需的任何条件(例如,创建屏幕截图所花费的时间)。

如果截屏线程在时限内没有响应,或者是否满足其他条件,则可以丢弃截屏线程的结果。

这篇文章( 在Java中指定的时间限制杀死线程 )也提出了一些建议,如果未及时完成,则实际上要终止该线程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM