2013-08-12 3 views

답변

0

답을 찾을 수있는 경우 set-timer

>> source set-timer 
set-timer: make function! [[ 
    {Calls a function after a specified amount of time. Returns timer ID reference.} 
    code [block!] 
    timeout [number! time!] 
    /repeat "Periodically repeat the function." 
    /local t id 
][ 
    t: now/precise 
    if number? timeout [timeout: to time! timeout] 
    sort/skip/compare append guie/timers compose/deep/only [(id: guie/timer-id: guie/timer-id + 1) [ 
     timeout (t + timeout) 
     rate (all [ 
       repeat 
       max 0:00 timeout 
      ]) 
     callback (function [] code) 
    ]] 2 2 
    guie/timeout: true 
    id 
    ] 
] 

의 소스보고 : 나는 가짜 코드 예제에서 무엇을 찾고 즉,

set-timer [print "done"] 60 

타이머가 아직 진행 중이라면 guie 개체에 있습니다.

>> guie/timers 
== [] 

>> set-timer [print "done"] 2 
== 5 

>> guie/timers 
== [5 [ 
    timeout 11-Aug-2013/22:41:13.381-5:00 
    rate none 
    callback make function! [[ 
     /local 
    ][print "done"]] 
]] 

과 같이 표시됩니다 날짜 값을 받고 :

타이머가 완료
second select guie/timers timer-id 
>>b: second select guie/timers 5 
==11-Aug-2013/22:41:13.381-5:00 
>>c: now/time - b/time 
== 0:0:55 

경우, 할-이벤트는 그것을 삭제합니다. 이벤트가 실행되지 않으면 시간이 다 된 후에도 타이머가 유지됩니다.

관련 문제