基于wxPython的多进程pyaudio冻结程序
在我的应用程序中调用p=pyaudio.pyaudio()会导致它在多进程内部调用时冻结。注意,我使用pythonw而不是python运行应用程序。当我卸下wx模块时,它工作正常。有没有关于如何修复的建议?我正在MacOS上使用python 3.5基于wxPython的多进程pyaudio冻结程序,python,wxpython,pyaudio,Python,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()
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()
app.py
import wx
app = wx.App()
frame = wx.Frame(parent=None, title='Hello World')
frame.Show()
app.MainLoop()
当您导入
app
模块时,它正在执行所有代码并在app.MainLoop()
处阻塞,同时处理和分派事件。在MainLoop
返回之前,控制不会返回到主模块