Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Common lisp 从应用程序调用CLIM UI_Common Lisp_Clim - Fatal编程技术网

Common lisp 从应用程序调用CLIM UI

Common lisp 从应用程序调用CLIM UI,common-lisp,clim,Common Lisp,Clim,为了运行CLIM UI,必须调用通用函数CLIM:run frame top-level,但是此函数会一直阻塞,直到UI退出。这似乎需要通过CLIM顶层处理所有应用程序控制 是否有可能以不同的方式构造应用程序,以建立CLIM顶层之外的控制流,并根据需要与应用程序框架进行交互?支持CLIM的大多数常见Lisp实现都可以将函数作为单独的线程运行(在Lisp中通常称为进程) 在许多常见的Lisp实现中,此函数称为PROCESS-RUN-function。请参阅Lisp的文档 CLIM本身有一个功能生成

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


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

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

在许多常见的Lisp实现中,此函数称为PROCESS-RUN-function。请参阅Lisp的文档

CLIM本身有一个功能生成过程。这是独立于实现的,可以在多线程Lisp(如Allegro CL、LispWorks、MCL、Generas等)之上的CLIM实现上工作

类似于(CLIM-USER包中的示例)

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


这将允许您运行多个帧,使用REPLs执行其他Lisp进程,等等。

再次感谢您!现在我了解了make进程(在clim sys包中),我在mcclim示例中找到了一个异步运行clim UI的示例:stopwatch.lisp。
(make-process (lambda () (run-frame-top-level ...)))