球拍运行线程固定的时间

So8*_*res 5 timeout racket

我想投机地用球拍表达,希望(但不是特别期待)一个结果.我的代码有一个很难的时间限制.是否有一种简单的方法可以运行一些球拍代码几秒钟,然后可靠地杀死它并在截止日期之前执行后备代码?

Asu*_*awa 6

是的,一个简单的方法是使用引擎库.例如:

#lang racket

(require racket/engine)

(define e (engine
           (? (_)
             ;; just keep printing every second
             (let loop ()
               (displayln "hi")
               (sleep 1)
               (loop)))))

;; run only for 2 seconds
(engine-run 2000 e)
Run Code Online (Sandbox Code Playgroud)

您还可以指定一个事件对象,以便在事件触发时线程停止运行,而不是指定时间.