在smalltalk中退出程序?

Exit program in smalltalk?

C++ 有 System.exit(0),VB 有 End,C# 有 Application.Exit

你会如何退出 Smalltalk 中的程序?我正在使用 Pharo。注意:我不是要退出 Pharo 本身,而是要在此特定指令期间终止我的程序。

我找到了退出 Pharo 本身的方法,但这又不是我要找的:Smalltalk exit: 0.

感谢您的帮助!

你的问题其实分为两部分。所以退出Pharo本身就相当于System.exit(0)。因为一个系统是运行一个C++进程,然后退出,同样适用于Pharo。

所以继续:您可以考虑从您当前的 pharo 图像启动另一个 pharo 图像,并在需要时自行终止该过程。

你真正想问的是如何退出 Pharo 中正在执行的部分代码。这是一个复杂的问题,因为您还必须回答您的代码和 Pharo 之间的边界在哪里。我认为这取决于您的实施。也许关闭 window 或从某处删除 class 的实例就足够了。

如果您想要一种更通用的方法,您可以使用 [ ] fork 在单独的 pharo 进程中开始执行,然后通过发送 suspendterminate 来停止它(您可以用 Processor activeProcess) 获取活动进程)。或者你可以做 thisContext terminate.