我正在处理N * N皇后问题和gui。 我希望每次移动都能睡几秒钟,这样观众就可以看到这个过程。 我如何让smalltalk入睡?
谢谢
答案 0 :(得分:4)
而不是睡觉,你可以等待。
5 seconds asDelay wait.
e.g。如果您选择并打印以下内容,则会在打印结果前等待5秒钟(2)
[
5 seconds asDelay wait.
1 + 1
] value
Delay
课程的评论解释了它的作用。
我是一个过程可能暂停一段时间的主要方式。最简单的用法是这样的:
(Delay forSeconds:5)等待。
延迟实例通过暂停调用者的进程一段时间来响应消息“wait”。使用消息forMilliseconds:或forSeconds:创建Delay时,指定暂停的持续时间。当前等待结束后,可以再次使用延迟。例如,时钟进程可能会反复等待一秒延迟。
重新启动快照时,将恢复保存图像快照时的延迟。延迟工作跨越毫秒时钟翻转。
有关更复杂的示例,请参阅#testDelayOf:for:rect:。
更新(根据评论)
wait
将暂停执行流程,这意味着在前面的示例中,1 + 1
仅在等待期结束后才会执行(执行流程已恢复)。
所以在你的班上你可以......
MyBoard>>doStep
self drawBoard.
5 seconds asDelay wait.
self solve.
5 seconds asDelay wait.
self destroyBoard.