这样想吧。。。
计算机程序是线性处理的,也就是说,一次一位。它不会转到下一个,直到它与它的一个完成。这对于LISPs是正确的;一旦启动,它们不会停止,除非暂停、出错等。脚本也不会停止。在LISP中运行脚本意味着LISP将在脚本运行时继续。这就是为什么,如果你试着在一个LISP中运行两个脚本,它们会互相攻击,并归咎于错误。即使是理论上的止损也只是理论上的,我自己也试过一些。真正做到这一点的唯一方法是将其放入脚本中以运行下一个LISP,这将使您处于一个非常复杂的菊花链上。
然而,可能有一种解决方案,即在脚本中运行LISP代码。例如,假设:
- ; LISP
- (defun c:hi()
- ; Do something
- ; Load and run Script
- (while (not check)
- ; Do nothing
- )
- ; Do something else
- )
您可以看到,在脚本中,它将允许LISP继续,但LISP将不会也不能继续,直到脚本完成其任务,从而将“check”设置为非nil。这意味着您需要编写Scrip和Lisp来进行协调(无论如何,这都是理论上的,我没有尝试过,尽管您可以在脚本中设置变量),但这是一个可能的选择。试试看,我也很好奇3. |