3

Is there a Racket/Scheme equivalent of ualarm?

i.e. how can one set a system timer in Racket?

4

2 回答 2

5

如果您希望某些操作在毫秒后异步发生time-to-wait,您可以使用alarm-evt,如下所示:

(thread
 (lambda ()
   (sync (alarm-evt (+ (current-inexact-milliseconds) time-to-wait)))
   .... do something here ....))

不过,根据您的操作,Óscar 的答案 ( timer%) 可能更方便。

于 2013-06-18T16:57:08.703 回答
4

完全一样ualarm(这不是系统调用!),但也许你可以timer%用来做你想做的事:

一个timer%对象封装了一个基于事件的警报。要使用计时器,请使用timer-callbackthunk 实例化它以执行基于警报的操作,或者派生一个新类并覆盖该notify方法以执行基于警报的操作。用 启动计时器,用start停止它stopinterval创建计时器时提供初始值(以毫秒为单位)也会启动计时器。

于 2013-06-18T15:42:59.523 回答