0

我试图在一个线程中显示我的加载器对话框,因为当我启动文件的上传系统时,在处理完成之前我看不到窗口。

我试过这样的事情:

thread.start_new_thread(self.display_loader(),(self)) 

但它没有用。

有一种特殊的方法可以在线程中运行新窗口吗?

一切都用 Python 和 PyGtk 完成

4

1 回答 1

0

当您说self.display_thread()时,它实际上会在那里调用display_thread函数,并将其返回值作为第一个参数传递给thread.start_new_thread. 这可能不是你想要的。

也就是说,我认为你最好反过来做;让主线程拥有 UI,并在线程中执行加载。

请记住,GTK+ 不是非常线程安全的,最好从单个线程中完成与 GTK+ 的所有交互。

更新:实际上,上述内容可能过于简单化了,这是我所理解的“常识”(我使用 GTK+ 已经有 15 年了,但很少使用线程)。这篇文章以更宽容的方式重新陈述了它,但不确定在这种情况下它是否真的让生活变得更轻松。为了完整起见,我想提一下。

于 2012-06-28T09:48:54.357 回答