总线错误python线程

时间:2013-06-28 19:47:58

标签: python multithreading macos

我正在使用Python和wx Simple Wizard进行项目。在我的向导中,当移动到第四页和最后一页时,它将启动一个名为beginCreateInstallation()的方法。这反过来为文件副本创建了一个单独的线程(以及其他一些小的文件),但也使向导线程保持活动状态。

以下是方法:

def beginCreateInstallation(self, parent):
    '''Install the files to the drive. We need to do this
    in a thread so the gui continues to update.
    '''

    #Disable the buttons so they can't move.
    wx.FindWindowById(wx.ID_BACKWARD).Disable()
    wx.FindWindowById(wx.ID_FORWARD).Disable()

    #Start the thread
    #from installer import createInstall 
    createInstallThread = threading.Thread(target=self.Installer.createInstall, args=[parent, self.selectedDrive])
    createInstallThread.setDaemon(True)
    try: createInstallThread.start()
    except: print "Boom goes the dynamite."

运行的线程是Installer.createInstall。在createInstall()的末尾,它在原始类中调用一个名为installComplete()的方法。

因此,在线程结束时,它调用父方法,然后应该死。

这在Windows上工作正常,但在OSX上我收到总线错误和“内核保护错误”。

如果我杀死线程,并将跟随行添加到beginCreateInstall()的底部,我添加以下行:

        createInstallThread.join()
        self.installComplete()

反过来杀死了线程并冻结了向导,但我没有收到总线错误。

任何有助于此线程工作的帮助?我可以在哪里使用线程来处理OSX?

先谢谢。

0 个答案:

没有答案