使用wxPython在多进程中冻结pyaudio程序



调用p=pyaudio。当在多进程内部调用时,我的应用程序中的PyAudio((会导致它冻结。请注意,我正在使用pythonw而不是python运行该应用程序。当我移除wx模块时,它工作正常。关于如何修复有什么建议吗?我在MacOS 上使用python 3.5

from app import frame, app
import pyaudio
import time
import multiprocessing as mp
def worker():
p = pyaudio.PyAudio()
while True:
print('starting worker')
print('pyaudio', p)
time.sleep(1)
if __name__ == '__main__':
p1 = mp.Process(target=worker)
p1.start()
frame.Show()
app.MainLoop()
p1.join()

应用程序

import wx
app = wx.App()
frame = wx.Frame(parent=None, title='Hello World')

frame.Show()
app.MainLoop()

导入app模块时,它在app.MainLoop()执行所有代码并进行阻塞,同时处理和调度事件。在MainLoop返回之前,控制不会返回到主模块。

最新更新