实现运行循环

时间:2014-02-21 09:37:24

标签: python runloop

我正在编写一个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(); }'type construct - 操作系统循环通过活动进程为每个进程分配一个特定的时间片,而这个命令只是将控制权返回给调度程序。

但我在OSX上,我想制作一个独立于平台的Python脚本。

可以吗?

1 个答案:

答案 0 :(得分:0)

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

使用while true。您可以阻止事件,或者如果您有文件句柄,甚至可以使用select。