Есть ли эквивалент Thread.sleep при работе с Eclipse Jobs?

StackOverflow https://stackoverflow.com/questions/190143

  •  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;
  }
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top