2013-05-06 42 views
5

我正在調試一些鍵盤事件代碼,並且想要循環睡眠(給我一個創建鍵盤事件的機會),但是當我這樣做時,Pharo不會讓我用Command-退出。所以調試很困難。我不得不等待500秒來修復下面的代碼中的東西...我如何在Smalltalk Pharo中休息幾秒鐘,並且能夠打斷它?

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.更適合?

+0

我在Mac上運行菲羅2.0 OS X. – 2013-05-06 08:37:25

+0

你可以嘗試在3.0的圖像?我認爲我們最近在全局中斷中修復了一些東西 – camillobruni 2013-05-06 09:14:59

+0

我會在某些時候檢查3.0,但是我需要一些在Pharo 2.0中有效的東西,因爲這是我們使用的平臺。有沒有計劃Pharo 2.1有這些修復? – 2013-05-07 15:22:51

回答

1

在Mac OS X上使用Squeak很好(使用peekKeyboardEvent,它沒有keyPressed:)。所以這不是你的代碼的錯,中斷這應該工作正常。

+0

是的,它也適用於Squeak 4.4中的我,但我需要一些在Pharo 2中有效的東西。 – 2013-05-07 15:21:59

0

我不完全舒爾這部作品在菲羅,但在佳樂你可以叉你的代碼在一個新的進程,因此它不會阻止用戶界面:

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