Задать вопрос
@trase8

Как приостановить цикл в Java?

Задача такая

Есть форма, в которой присутствуют несколько полей. В них вводятся цифры для расчетов. Когда данные введены, нажимается кнопка и запускается цикл с несколькими итерациями. Внутри цикла производятся расчеты на основе этих данных. Проблема в том, что на каждой итерации нужно корректировать данные в форме. Получается такой диалог постоянный с пользователем.
Пихать в начало каждой итерации thrread.sleep() не вариант, потому что так нельзя ввести новые данные. Что дееелаааать?
  • Вопрос задан
  • 422 просмотра
Подписаться 1 Оценить 4 комментария
Пригласить эксперта
Ответы на вопрос 1
@Free_ze
Пишу комментарии в комментарии, а не в ответы
По-хорошему, тяжелую логику (а вызовы sleep можно назвать тяжелой задачей, т.к. это тормозит поток, который не сможет обрабатывать события интерфейса) нужно выносить в отдельный поток (thread), GUI-поток должен вести себя пассивно и заниматься лишь взаимодействием с пользователем и запусками background worker'ов (для длительных операций).

В вашем случае есть простой путь: разделить задачки на итерации и выполнять их по таймеру.
Либо организовать полноценный фоновый поток, который можно будет невозбранно тормозить через sleep.

Если английский средней школы позволяет, советую пройти вот этот туториал.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы