代码之家  ›  专栏  ›  技术社区  ›  ludo

我们如何使用法罗的每一种方法?

  •  1
  • ludo  · 技术社区  · 7 年前

    我看了法罗的书,没有看到任何 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 回复  |  直到 6 年前
        1
  •  3
  •   fede s.    7 年前

    Timespan的every:do:不安排事件。您可以尝试在延迟的情况下分叉后台进程。

    我现在只能勉强凑合着用,但应该差不多。

    类似这样:

    planProcess := [
                     [ 30 seconds asDelay wait.
                       Transcript show: 'Saved (but not really)'; cr.
                     ] repeat.
                   ] fork.
    

    要结束此过程:

    planProcess terminate.
    

    还有一个调度程序可以用于此。

        2
  •  1
  •   draegtun    7 年前
    |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