2014-02-21 42 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的角度来看,效率不高吗?它只是在退出条件下浪费周期......这种风险不会落后于系统吗? –