我已经在Windows 7下使用wxpython GUI编写了一个python(2.7)应用程序。当我运行该应用程序时,我看到一个python.exe*32进程在任务pipe理器中启动。 当我退出应用程序(使用wxpython的Window.Close()方法closuresGUI窗口)时, python.exe*32进程仍然存在。 当我再次运行应用程序时,第二个python.exe * 32进程启动,并继续。 每个python.exe*32进程需要大约180 MB的内存,并减慢计算机。
我这样开始我的应用程序:
if __name__ == "__main__": app = wx.App(False) frame = MainWindow("MyApp") frame.Show() app.MainLoop()
当我退出我的应用程序时,如何使python.exe*32进程终止?
ptrace PTRACE_ATTACH失败 – 用户拥有的进程的Linux权限
何时/为什么要使用heapmin?
GWT,Maven – 无法为对象堆预留足够的空间
ColdFusion可以访问Windows内存值
Linux上的虚拟内存大小
跟踪和降低GD手柄的最佳方法是什么?
Windows内存映射文件
如何查看Windows 7上的系统caching内存
在代码的末尾添加一个sys.exit(1) ,这将给父进程一个返回代码,该代码应该终止父代,即Python。
注意:如果线程单独运行,不要将sys.exit(1)放在GUI“close”函数的后面,否则会导致数据丢失和“拧紧”打开的套接字(如果有的话)。
这是做到这一点的正确方法:
class MainWindow(wx.Frame): def __init__(self,title): wx.Frame.__init__(self,None,title=title,pos=(150,150),size=(350,200)) self.Bind(wx.EVT_CLOSE,self.OnClose) def OnClose(self,event): self.Destroy() # or simply do sys.exit(1) here if __name__ == "__main__": app = wx.App(False) frame = MainWindow("MyApp") frame.Show() app.MainLoop() sys.exit(1)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。