簡體   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