相关疑难解决方法(0)

Tkinter:等待队列中的项目

我正在使用队列在后台线程和Tk GUI应用程序之间交换消息.目前,这是通过不时调用查询方法来完成的.

def read_queue(self):
    try:
        self.process(self.queue.get(False)) # non-blocking
    except Queue.Empty:
        pass
    finally:
        self.after(UPDATE_TIME, self.read_queue)
Run Code Online (Sandbox Code Playgroud)

这种方法的问题是,如果UPDATE_TIME太大,应用程序将比可能的更慢地处理新项目.如果它太小,Tk花费大部分时间来检查队列,虽然它可以在此期间做其他事情.

有没有办法read_queue在新项目到达队列时自动触发方法?(当后台线程填满队列时,我当然可以在Tk上调用一个方法,但我担心这会给我带来一些并发问题 - 这就是我毕竟使用队列的原因.)

python multithreading tkinter event-handling

11
推荐指数
2
解决办法
9646
查看次数

标签 统计

event-handling ×1

multithreading ×1

python ×1

tkinter ×1