Как использовать тайм-аут для цикла в Java?

этот код я делаю.

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. пожалуйста, вставьте свой код в вопрос

sidgate 24.10.2018 06:21

какова цель sleep?

Scary Wombat 24.10.2018 07:11

Моя цель - программа остановится, когда время истечет, независимо от того, выполнен ли цикл for или нет ... но я не совсем уверен в коде, который я сделал.

Winda Agusthia Netto 24.10.2018 07:24
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
3
4 764
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

попробуйте вот так.

  long start = System.currentTimeMillis();
    long end = start + 300000;
    while(true) {
        //do your code
        //
        if (System.currentTimeMillis() > end) {
            break;
        }
    }

попробуйте с меньшим временем, 300000 мс эквивалентно 5 минутам.

Pandey Amit 24.10.2018 06:34

он не работает: '(программа все еще работает, пока не зациклится 5 раз (цикл для)

Winda Agusthia Netto 24.10.2018 06:41

вы хотите запустить внутренний цикл for только один раз? тогда цикл while не нужен. удалите цикл while, а после цикла просто поместите Thread.sleep (300000)

Pandey Amit 24.10.2018 06:49

да. и программа все еще работает, пока цикл for не будет завершен. : '(

Winda Agusthia Netto 24.10.2018 06:57

Моя цель - программа остановится, когда время истечет. независимо от того, выполнен ли цикл или нет.

Winda Agusthia Netto 24.10.2018 06:59

Другие вопросы по теме