4

为了运行 CLIM UI,必须调用通用函数 clim:run-frame-top-level,但是此函数会阻塞,直到 UI 退出。这似乎需要通过 CLIM 顶层处理所有应用程序控制。

是否可以以不同的方式构建应用程序,以便建立 CLIM 顶层之外的控制流,并根据需要简单地与应用程序框架交互?

4

1 回答 1

4

大多数支持 CLIM 的 Common Lisp 实现都可以将函数作为单独的线程运行(在 Lisp 中通常称为 PROCESS)。

在许多 Common Lisp 实现中,这个函数被称为 PROCESS-RUN-FUNCTION。请参阅 Lisp 的文档。

CLIM 本身有一个函数 MAKE-PROCESS。这是独立于实现的,并且适用于多线程 Lisp 之上的 CLIM 实现,例如 Allegro CL、LispWorks、MCL、Genera,...

类似的东西(CLIM-USER 包中的示例)。

(make-process (lambda () (run-frame-top-level ...)))

应该在自己的线程中运行顶层。

这将允许您运行多个框架,使用 REPL 等其他 Lisp 进程。

于 2010-10-21T15:55:01.543 回答