我查看了pharo书,但我看不到every:aDuration do:aBlock
的任何例子。我找到了一个Timespan
类,它在运行时确实在创建对象并调用方法时出错。
|plan|
plan := Timespan new.
plan start.
" save the file every 30s"
plan
every:30 seconds do:[ Transcript show:'My message']

答案 0 :(得分:3)
Timespan的每一个:做:不安排事件。您可以尝试使用延迟执行后台处理。
我现在只有Squeak方便,但它应该或多或少相同。
这样的事情:
planProcess := [
[ 30 seconds asDelay wait.
Transcript show: 'Saved (but not really)'; cr.
] repeat.
] fork.
结束这个过程:
planProcess terminate.
还有一个可以使用的调度程序。
答案 1 :(得分:1)
|span aDate|
aDate := DateAndTime year: 2012 month: 12 day: 12.
span := Timespan starting: aDate duration: 1 minute.
span every: 10 seconds do: [ :each | Transcript show: each; cr ].
输出:
2012-12-12T00:00:00+00:00
2012-12-12T00:00:10+00:00
2012-12-12T00:00:20+00:00
2012-12-12T00:00:30+00:00
2012-12-12T00:00:40+00:00
2012-12-12T00:00:50+00:00