JavaScript не поддерживает многопоточность. Однако в GWT есть класс для «имитации» многопоточности, который не является реальной многопоточностью, но в большинстве случаев делает то, что вам нужно: com.google.gwt.core.client.Scheduler.ScheduledCommand
. Техника основана на классе таймера, который выполняет метод по истечении заданного времени.
Например, при размещении следующего кода в вашем собственном коде метод scheduleDeferred
будет возвращен напрямую, и ваш код будет продолжен после команды, а метод execute()
выполняется с использованием таймера:
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
public void execute() {
.. code here is executed using the timer technique.
}
});
Вы можете создать повторяющуюся команду RepeatingCommand
, которую можно использовать для запуска команды более одного раза. Запустите его с Scheduler.get().scheduleIncremental()
, который будет выполнять команду до тех пор, пока метод execute не вернет false
. Вы можете использовать это, чтобы разделить задачи на подзадачи, чтобы получить лучшее «многопоточное» поведение. Scheduler
поддерживает некоторые дополнительные методы для запуска запланированной команды по-другому. Подробнее см. JavaDoc .
Отредактировано и обновлено новым классом GWT вместо устаревшего DeferredCommand
.