【发布时间】:2016-05-05 14:19:00
【问题描述】:
我正在处理 N*N 皇后问题和它的 gui。 我想每次移动都睡几秒钟,这样观众就可以看到这个过程。 如何让 smalltalk 进入睡眠状态?
谢谢
【问题讨论】:
我正在处理 N*N 皇后问题和它的 gui。 我想每次移动都睡几秒钟,这样观众就可以看到这个过程。 如何让 smalltalk 进入睡眠状态?
谢谢
【问题讨论】:
你可以等待,而不是睡觉。
5 seconds asDelay wait.
例如如果您选择并打印它以下内容,它将在打印结果之前等待5秒(2)
[
5 seconds asDelay wait.
1 + 1
] value
Delay 类的注释解释了它的作用。
我是进程可能暂停一段时间的主要方式。最简单的用法是这样的:
(延迟秒数:5)等待。
Delay 实例通过将调用者的进程挂起一段时间来响应消息“等待”。暂停的持续时间是在使用消息 forMilliseconds: 或 forSeconds: 创建延迟时指定的。当前等待完成后,可以再次使用延迟。例如,一个时钟进程可能会反复等待一秒的延迟。
保存图像快照时的延迟在重新启动快照时恢复。延迟适用于毫秒时钟翻转。
有关更复杂的示例,请参阅#testDelayOf:for:rect:。
更新:(基于评论)
wait 将暂停执行流程,这意味着在前面的示例中,1 + 1 将在等待期结束后才被执行(执行流程恢复)。
所以在你的课堂上你可以...
MyBoard>>doStep
self drawBoard.
5 seconds asDelay wait.
self solve.
5 seconds asDelay wait.
self destroyBoard.
【讨论】: