我正在使用Mido(https://mido.readthedocs.io/en/latest/)来接收Python中的Midi消息。 我希望能够对每次有新输入时接收到多少消息进行计数。
问题:
如何将所有输入包装在列表中?
然后如何将新的输入项添加到列表?
当列表不断变化时,我该如何计算该列表中的项目数?
class MyThread(threading.Thread):
def run(self):
for msg in inport:
print msg
m = MyThread()
m.start()
这将产生如下输出:
control_change channel=0 control=16 value=1 time=0
control_change channel=0 control=16 value=2 time=0
control_change channel=0 control=16 value=3 time=0
control_change channel=0 control=16 value=4 time=0
control_change channel=0 control=16 value=5 time=0
control_change channel=0 control=16 value=6 time=0
control_change channel=0 control=16 value=7 time=0
答案 0 :(得分:0)
您可以修改线程类以对inport
列表进行操作,如下所示:
class MyThread(threading.Thread):
inport = []
def add(ele):
inport.append(ele)
def count():
return len(inport)
def run(self):
for msg in self.inport:
print msg
m = MyThread()
m.start()
如果您在列表上运行多线程,则可以使用Queue
之类的同步结构。了解更多here