[带有wxPython的多进程中的pyaudio冻结程序

问题描述 投票:0回答:1

在我的应用中调用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()

app.py

import wx

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


frame.Show()
app.MainLoop()
python wxpython pyaudio
1个回答
0
投票

导入app模块时,它正在执行所有代码,并在处理和调度事件时在app.MainLoop()处阻塞。直到MainLoop返回,控制权才返回主模块。

© www.soinside.com 2019 - 2024. All rights reserved.