2016-05-05 2 views
2

Я имею дело с проблемой N * N queens и gui этого. Я хочу спать на несколько секунд каждый ход, чтобы зритель мог видеть процесс. Как помещать Smalltalk в режим сна?Сон в Smalltalk Squeak

Спасибо

ответ

4

Вместо сна вы можете просто подождать.

5 seconds asDelay wait. 

e.g. если вы выбираете и печати это следующее, он будет ждать 5 секунд перед печатью результата (2)

[ 
    5 seconds asDelay wait. 
    1 + 1 
] value 

Комментария к Delay класса объясняет, что он делает.

Я являюсь основным способом, который процесс может приостановить на некоторое время. Самое простое использование выглядит так:

(Задержка для секунд: 5) ждут.

Экземпляр задержки откликается на сообщение «wait», приостановив процесс вызывающего абонента на определенное количество времени. Продолжительность паузы указывается, когда создается задержка с сообщением дляMilliseconds: или forSeconds :. Задержка может быть использована снова, когда текущее ожидание закончилось. Например, процесс синхронизации может несколько раз ждать на одну секунду задержки.

Задержка при сохранении моментального снимка изображения возобновляется при повторном запуске моментального снимка. Задержки работают за миллисекунды.

Для более сложного примера см. #testDelayOf: for: rect:.

Update: (основано на комментарий)

wait приостанавливает поток выполнения, что означает, что в примере выше, 1 + 1 будут выполнены (поток выполнения возобновляется) только после того, как период ожидания имеет закончился.

Так что в вашем классе вы можете иметь ...

MyBoard>>doStep 
    self drawBoard. 
    5 seconds asDelay wait. 
    self solve. 
    5 seconds asDelay wait. 
    self destroyBoard. 
+0

как именно делает ожидание работы? Я создаю экземпляр своего доски и рисую его, затем я хочу, чтобы он подождал х секунд, запустил решение, подождал х секунд, а затем удалил доску. Im не уверен, что я точно понимаю, когда происходит ожидание и когда происходит следующая/предыдущая команда. – Infested

+0

@Infested Я добавил комментарий класса класса Delay. –

+0

@Infested и другое обновление ... если я правильно понимаю ваш комментарий. –

Смежные вопросы