我如何在Smalltalk Pharo中睡几秒钟,并能够打断这个?

时间:2013-05-06 08:37:04

标签: smalltalk pharo

我正在调试一些键盘事件代码,我想循环播放(让我有机会创建键盘事件),但是当我这样做时,Pharo不会让我退出Command-。所以调试很困难。我不得不等待500秒来修复下面的代码...

100 timesRepeat: [ 
    Transcript show: 'Type an a... '.
    (Delay forSeconds: 5) wait.
    (Sensor keyPressed: $a) ifTrue: [ Transcript show: 'you pressed a' ].
]

那我该如何制作Command-。工作,还是有比(Delay forSeconds: 5) wait.更合适的东西?

2 个答案:

答案 0 :(得分:1)

在Mac OS X上的Squeak中运行正常(使用peekKeyboardEvent,它没有keyPressed:)。所以这不是你的代码的错,中断这应该工作正常。

答案 1 :(得分:0)

我并不是完全可以在Pharo中使用它,但是在Squeak中你可以在新进程中分叉代码,因此它不会阻止UI:

[
    100 timesRepeat: [ 
        Transcript show: 'Type an a... '.
        (Delay forSeconds: 5) wait.
        (Sensor keyPressed: $a) ifTrue: [ Transcript show: 'you pressed a' ].
    ].
] fork.