我正在尝试使用新线程或多进程来运行函数
函数的调用方式如下:
Actualize_files_and_folders(self)
我已经读了很多关于多处理和线程的书,还有关于StackOverflow的问题,但是我不能让它工作。。。如果能得到一些帮助就太好了><
我用一个按钮调用这个函数
def on_button_act_clicked(self, menuitem, data=None):
self.window_waiting.show()
Actualize_files_and_folders(self)
self.window_waiting.hide()
在等待窗口中,我有一个名为“cancel”的按钮,如果我能有一个杀死线程的命令/函数,那就太好了
我试过很多东西,例如:
self.window_waiting.show()
from multiprocessing import Process
a=Process(Target=Actualize_files_and_folders(self))
a.start()
a.join()
self.window_waiting.hide()
但是窗口仍然冻结,窗口等待显示在实现文件和文件夹(self)的末尾,就像我调用了一个普通函数一样
非常感谢你的帮助
看起来正在调用worker函数,而不是将其用作进程目标的回调:
这基本上等同于:
因此在主线程中调用worker函数来阻塞它。此函数的结果作为目标传递到进程中,如果它是None,则它将不执行任何操作。您需要将函数本身作为回调传递,而不是其结果:
见:https://docs.python.org/2/library/multiprocessing.html
相关问题 更多 >
编程相关推荐