0

我正在按照很棒的 Seaside 书中关于 Magma 的教程进行操作,有一次我的图像完全卡住了。那时我在调试器中,我尝试在以下代码段的一部分上运行“检查它”:ToDoDB root

ToDoDB createDB.
ToDoDB commit: [ ToDoDB root add: ToDoItem new ].
ToDoDB release.

在那之后,我的图像停止响应任何东西。

我有点好奇为什么 Magma 在检查行动中表现得那样,但我更感兴趣的是了解我解决此问题的选择是什么?我应该扔掉这张图片并从头开始吗?我可以向虚拟机发送一些操作系统信号以杀死活动线程或其他什么吗?Smalltalk新手在这里。

4

2 回答 2

2

肖恩已经回答了,但您也可以在 pharo 协作书中找到它:http: //book.pharo-project.org/book/TipsAndTricks/InterruptKey/

只是另一句话,您说“我可以向 VM 发送一些操作系统信号以杀死活动线程或其他什么吗?这里是 Smalltalk 新手。”。请注意,大多数 Smalltalk 方言都有所谓的“绿线”。也就是说,从操作系统的角度来看,它只是一个线程。Smalltalk 内部管理自己的不同进程和有关它的时间表。检查处理器,调度程序等类。所以......我的意思是,如果你想从外部杀死一个线程,你将杀死唯一的线程,整个虚拟机;)

于 2011-04-25T12:00:06.480 回答
1

尝试发送中断。请参阅http://wiki.squeak.org/squeak/899了解您的平台(即底层操作系统)的快捷方式。

此外,您的意思可能是“抛出此图像”而不是“此 VM”。Pharo By Example是一个很好的免费资源,用于 Smalltalk 基础知识,如图像、更改文件和虚拟机

于 2011-04-25T03:31:09.737 回答