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 脚本。

我可以吗?

4

1 回答 1

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

使用一段时间为真。你可以让它阻塞事件,或者如果你有文件句柄,甚至可以使用 select。

于 2014-02-21T09:43:35.057 回答