我是线程的新手,也是我想要掌握的东西。我正在创建一个线程来处理与主线程(处理图形用户进程)分开的长时间运行的进程。否则,我有一个阻止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