【问题标题】:Python: Execute callback method in main threadPython:在主线程中执行回调方法
【发布时间】:2015-01-31 16:48:13
【问题描述】:

不想让我的 GUI 冻结,我决定使用线程进行文件操作。目前我正在使用thread.start_new_thread(self.openFile, (filepath, self.openedFile)) 这样做,self.openedFile 是我的回调方法。在self.openFile 内部,它只是使用callback(success) 调用。

但不幸的是,我无法弄清楚如何在主线程而不是新创建的线程中执行我的回调。这是必需的,因为不能从另一个线程修改 GUI。

非常感谢您的帮助!

【问题讨论】:

    标签: python multithreading python-2.7


    【解决方案1】:

    拥有 GUI 的线程必须定期检查 Queue.Queue 实例,其他线程可以在该实例上发出工作请求(例如回调函数及其参数)。

    在 GUI 的主循环中插入此类检查的难易程度 100% 取决于您正在使用的 GUI 框架。

    例如,如果您使用 Tkinter,小部件的 after 方法可让您执行此类定期检查,如 Run an infinite loop in the backgroung in Tkinter 中所述。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-18
    • 2015-01-13
    • 2018-10-02
    • 1970-01-01
    • 2018-01-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多