我正在编写一个 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脚本。
我可以吗?
while True:
dance_the_merry_dance()
if should_exit():
break
使用一段时间 true。您可以阻止它的事件,如果您有文件句柄,甚至可以使用 select。