2014-02-21 65 views
0

我正在寫一個Python腳本,當我按我的MIDI鍵盤上的鍵時採取行動:實現運行循環

# https://github.com/superquadratic/rtmidi-python/ 

import rtmidi_python as rtmidi 

def callback(message, time_stamp): 
    print message, time_stamp 

midi_in = rtmidi.MidiIn() 
midi_in.callback = callback 
midi_in.open_port(0) 

# do something else here (but don't quit) 

現在,如何保持腳本活着,所以,它響應處理回調,同時不會通過旋轉車輪來排除不必要的CPU?從我早期的Visual Studio時代開始,我記得'while(true){doevents(); }'類型構造 - 操作系統在活動進程中循環,爲每個進程分配一定的時間片,並且該命令只是將控制權返回給調度器。

但我在OSX上,我想製作一個獨立於平臺的Python腳本。

我可以嗎?

回答

0
while True: 
    dance_the_merry_dance() 
    if should_exit(): 
     break 

使用一段時間爲true。您可以阻止事件,或者如果您有文件句柄,則可以使用select。

+0

從CPU的角度來看,效率不高嗎?它只是在退出條件下浪費週期......這種風險不會落後於系統嗎? –