如何在python中将somthing添加到队列时运行函数

如何在python中将somthing添加到队列时运行函数,python,multithreading,Python,Multithreading,我想知道在python中是否有一个选项可以知道何时将任务添加/附加到队列中 我有一个应用程序,其中一些进程在线程中运行。根据条件,从该线程调用函数。被调用的函数将显示一个窗口 目前它正在工作,窗口正在显示,我的主要问题是当窗口显示时应用程序被挂起。我认为这是由于调用了显示线程中的窗口的函数 所以在我的搜索中,有人建议我使用python中的队列 但当我浏览python时,会发现一个无限循环将在主线程中运行 如果是这种情况,那么我的整个应用程序将处于无限循环中。您没有指定正在使用的确切GUI框架 如

我想知道在python中是否有一个选项可以知道何时将任务添加/附加到队列中

我有一个应用程序,其中一些进程在线程中运行。根据条件,从该线程调用函数。被调用的函数将显示一个窗口

目前它正在工作,窗口正在显示,我的主要问题是当窗口显示时应用程序被挂起。我认为这是由于调用了显示线程中的窗口的函数

所以在我的搜索中,有人建议我使用python中的队列

但当我浏览python时,会发现一个无限循环将在主线程中运行


如果是这种情况,那么我的整个应用程序将处于无限循环中。

您没有指定正在使用的确切GUI框架

如果您使用的是wxPython,则可以使用wx.CallAfter从另一个线程调用函数:

def ShowWindow(txt):
    wx.MessageBox(txt)
wx.CallAfter(ShowWindow,'message from another dimension')
从另一个线程:

def ShowWindow(txt):
    wx.MessageBox(txt)
wx.CallAfter(ShowWindow,'message from another dimension')

这不会导致主循环挂起。

我不确定,但看起来您需要使用线程。事件:instread of Queue。条件:-事件对象的更高级版本