【发布时间】:2019-03-28 09:38:15
【问题描述】:
我制作的这段代码。
public long detecFace(int threshold, int dir, JLabel... lbl) throws InterruptedException {
long timeStart = Calendar.getInstance().getTimeInMillis();
BufferedImage[] finalImg = new BufferedImage[10];
BufferedImage[] edgeImage = new BufferedImage[10];
long t = System.currentTimeMillis();
long end = t-300000;
while (t < end){
for (int i = 0; i < 5; i++) {
ip.setFileImage(df.getFile()[i]);
ip.procesImage(threshold, dir);
edgeImage[i] = ip.getEdgeImage();
//ImageDrawer.drawOriginalImage(edgeImage[i]); //BENER HASIL YANG KELUAR
finalImg[i] = showSelectedFace(RHT(edgeImage[i]), ResearchData.getOriginalImage()[i]);
//ImageDrawer.drawOriginalImage(finalImg[i]); //SALAH HASIL YANG KELUAR
int count = 1;
int total = count + i;
System.out.println(total);
if (finalImg[i] != null)
{
ui.drawerImage(finalImg[i], lbl[i]);
} else {
System.out.println("Failed!");
}
}
Thread.sleep(end);
}
ResearchData.setEdgeImage(edgeImage);
ResearchData.setFinalImage(finalImg);
long timeEnd = Calendar.getInstance().getTimeInMillis();
long tt = timeEnd - timeStart;
long second = tt/1000;
long minute = second/60;
long seconds = second%60;
System.out.println("minute =" +minute+ "; second =" +seconds);
return tt;
}`
我尝试使用超时创建循环,但我与结果叠加。没有错误,但逻辑错误。我想让我的程序运行 3 或 5 分钟,只要程序运行,那里就会再次循环。帮助我找到解决问题的最佳方法。谢谢
【问题讨论】:
-
欢迎来到 SO。请将您的代码粘贴到问题中
-
sleep的目的是什么? -
我的目标是程序将在时间到时停止,无论“for循环”是否完成......但我不确定我制作的代码。
标签: java multithreading loops while-loop timeout