我们如何使用每一个:做:pharo的方法?

时间:2017-11-27 13:21:31

标签: smalltalk pharo

我查看了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']




2 个答案:

答案 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
相关问题