2013-05-06 1 views
5

일부 키보드 이벤트 코드를 디버깅 중이며 수면 상태로 루프를 만들고 싶습니다. (키보드 이벤트를 만들 수있는 기회를주기 위해) Pharo는 Command-로 끝내지 않을 것입니다. 그래서 디버깅은 어렵습니다. 아래 코드에서 뭔가를 고치기 위해 500 초를 기다려야 만했습니다 ...스몰 토크 파로에서 몇 초 동안 잠을 어떻게 자고이를 방해 할 수 있습니까?

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

어떻게 명령을 만들 수 있습니까? 또는 (Delay forSeconds: 5) wait.보다 적합한 것이 있습니까?

+0

내가 Mac에서 Pharo 2.0을 실행하는거야을 OS X. –

+0

3.0 이미지를 사용해 볼 수 있습니까? 나는 우리가 최근 글로벌 인터럽트에서 몇 가지 문제를 해결했다고 생각한다. – camillobruni

+0

언젠가는 3.0을 체크 아웃 할 것이지만, 우리가 사용하고있는 플랫폼 인 Pharo 2.0에서 작동하는 것이 필요하다. Pharo 2.1에 대한 수정 계획이 있습니까? –

답변

1

Mac OS X의 Squeak에서 잘 작동합니다 (peekKeyboardEvent을 사용하면 keyPressed:이 없음). 따라서 코드의 잘못이 아니며이를 방해하면 정상적으로 작동합니다.

+0

예, Squeak 4.4에서도 작동하지만 Pharo 2에서 작동해야합니다. –

0

나는 완전히이 Pharo에서 작동하지만, 가족 이죠 당신이 단지 새로운 프로세스에 코드를 포크 할 수 슈어하고 있지 않다, 그래서 UI를 차단하지 않습니다

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