этот код я делаю.
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 минут, и пока программа работает, там снова будет цикл. помогите мне найти лучшее решение моей проблемы. Спасибо
какова цель sleep?
Моя цель - программа остановится, когда время истечет, независимо от того, выполнен ли цикл for или нет ... но я не совсем уверен в коде, который я сделал.




попробуйте вот так.
long start = System.currentTimeMillis();
long end = start + 300000;
while(true) {
//do your code
//
if (System.currentTimeMillis() > end) {
break;
}
}
попробуйте с меньшим временем, 300000 мс эквивалентно 5 минутам.
он не работает: '(программа все еще работает, пока не зациклится 5 раз (цикл для)
вы хотите запустить внутренний цикл for только один раз? тогда цикл while не нужен. удалите цикл while, а после цикла просто поместите Thread.sleep (300000)
да. и программа все еще работает, пока цикл for не будет завершен. : '(
Моя цель - программа остановится, когда время истечет. независимо от того, выполнен ли цикл или нет.
добро пожаловать в SO. пожалуйста, вставьте свой код в вопрос