Win*_*tto 2 java multithreading loops timeout while-loop
我制作的这段代码。
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;
}`
Run Code Online (Sandbox Code Playgroud)
我尝试使用超时进行循环,但我将结果堆叠起来。没有错误,但逻辑错误。我想让我的程序运行 3 或 5 分钟,只要程序运行,就会再次循环。帮助我找到问题的最佳解决方案。谢谢
尝试这样。
long start = System.currentTimeMillis();
long end = start + 300000;
while(true) {
//do your code
//
if(System.currentTimeMillis() > end) {
break;
}
}
Run Code Online (Sandbox Code Playgroud)