Python:使用wxPython进行线程处理

时间:2015-06-12 23:12:08

标签: python multithreading wxpython

我是线程的新手,也是我想要掌握的东西。我正在创建一个线程来处理与主线程(处理图形用户进程)分开的长时间运行的进程。否则,我有一个阻止GUI,这是不好的。

该过程不断重复,线程中的代码再次运行,而不是从allDone函数停止,这对我来说没有意义。

无论代码在运行部分中采用哪条路径(无论是findDomains函数,searchAndScrape函数还是emailFormat函数),它们都会在调用myClass的allDone函数的emailFormat函数中结束,该函数是GUI的一个对象(称为WindowClass):

#pragma GCC diagnostic ignored "-Wunused-variable"

为了保持简洁而不发布500行代码,这里只是我的线程类:

class windowClass(wx.Frame):
    def __init__(self, parent, title):
        super(windowClass, self).__init__(parent, title=title, size=(500, 364),   style=wx.DEFAULT_FRAME_STYLE & ~wx.MAXIMIZE_BOX ^ wx.RESIZE_BORDER)
        self.SetBackgroundColour('white')
        self.basicGUI()

def allDone(self, event):
    myClass.worker.stop()
    time.sleep(2)
    dlg = wx.MessageBox("All done!", "Ask Alfred", wx.OK | wx.ICON_INFORMATION)
    if dlg.ShowModal() == wx.ID_OK:
        while True:
            try:
                os.unlink(self.fpath)
                os.rename(self.temp, self.fpath)
                self.Destroy()
            except WindowsError:
                myClass.closeIt(self)
            break

0 个答案:

没有答案