Есть ли эквивалент Thread.sleep при работе с Eclipse Jobs?
-
06-07-2019 - |
Вопрос
Я пишу плагины Eclipse, где есть довольно много запущенных заданий.
В некоторых случаях я хочу, чтобы работа "спала" на некоторое время в текущей точке выполнения и продолжить с этого места (вместо того, чтобы перепланировать задание и запустить его с нуля).
Насколько я понимаю, использование Thread.sleep в заданиях Eclipse не рекомендуется.
Есть ли приемлемая альтернатива для этого?
Решение
Я думаю, что вам лучше всего перенести работу и продолжить с того места, где вы остановились. Что-то вроде:
class MyJob {
int state;
IStatus run(IProgressMonitor m) {
if (state == 0) {
phase1();
schedule(1000);
}
else if (state == 1) {
phase2();
}
return Status.OK;
}
void phase1() {
state = 1;
}
void phase2() {
state = 2;
}
}
Не связан с StackOverflow