【发布时间】:2018-03-11 13:23:37
【问题描述】:
我正在尝试创建一个简单的 python 程序,其中一个线程处理 UI 和另一个“后台内容”。当用户尝试退出我的应用程序时,我想运行一个函数,出现一个对话选项。
当我运行以下代码时,函数“on_closing()”会自动运行。据我了解,我只能在协议函数中传递函数名,但我需要几个参数。
class MainWindow:
def __init__(self, master):
master.resizable(0, 0)
master.protocol("WM_DELETE_WINDOW", self.on_closing(master))
do_stuff('...')
def on_closing(self, master):
do_stuff('...')
self.Destroy(master)
def call_window_manager(title):
do_stuff(title)
root = Tk()
mw = MainWindow(root)
root.mainloop()
def call_tools(title, mainwindow, master):
do_stuff(title)
if __name__ == '__main__':
do_stuff('main line')
p1 = mp.Process(target=call_window_manager, args=('Window Manager Thread',))
p2 = mp.Process(target=call_tools, args=('Tools Thread',))
p1.start()
p2.start()
p1.join()
p2.join()
那我该如何传递参数呢?我是以错误的方式处理这个问题吗?
Ps:同时终止另一个线程的最佳方法是什么?
【问题讨论】: