【问题标题】:Python threading, new thread gets stuckPython线程,新线程卡住
【发布时间】:2012-01-02 18:08:01
【问题描述】:

我正在尝试使用 gui 编写一个 python 应用程序,但我遇到了 python 的线程包问题。

import pygtk
pygtk.require('2.0')
import gtk
import threading
import time

class gui:
    def main(self):
        print "starting gui"
        gtk.main()

class logic:
    def __call__(self):
        time.sleep(1)
        print "did logic"

if __name__ == "__main__":
    threading.Thread(None, logic()).start()
    gui().main()

输出:

starting gui

逻辑永远不会发生。为什么?我该如何解决这个问题?

【问题讨论】:

    标签: python multithreading user-interface pygtk


    【解决方案1】:

    我处理这个问题的时间最长,这里是您可以找到解决方案的地方:

    http://faq.pygtk.org/index.py?req=show&file=faq20.006.htp

    【讨论】:

    • 哇,这很复杂。谁能推荐另一个允许我使用另一个线程而不重新编译它的 gui 库?
    • 您不必重新编译 GTK 即可使用线程。我知道的所有发行版都使用线程支持编译 GTK,包括 Windows 上的 GTK 安装程序。如果你只从主线程访问 GUI(例如,通过向线程发送消息,使用 idle_add 等),你甚至不需要threads_enter/threads_leave
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-03
    • 2013-11-14
    • 1970-01-01
    相关资源
    最近更新 更多