小编fle*_*bas的帖子

tkinter 线程通信

我有代码应该显示 tkinter 小部件(注意:尚未实现)和另一个线程之间的通信。作为这两者之间的通信,我选择 python 队列。要查看真正发生的事情,控制台中会显示打印,这不是我所期望的。

如可以在控制台输出可以看出在睡眠时间后generate_text输出从process被示出。我的预期是,由于generate_text是慢然后process我会看到更多的process is called,然后Item x,但这没有发生。

import tkinter as tk
import threading
import queue
import time

def generate_text(storage):
    count = 0
    while True:
        message = "Item {}".format(count)
        storage.put(message)
        print(message)

        count +=1

        time.sleep(3000/1000)

def process(storage):
    print("process is called")

    try:
        storage.get()
    except queue.Empty:
        print("queue empty")

    # register awake function
    root.after(500, process, message)

# init variables
message = queue.Queue()

root = tk.Tk()

t = threading.Thread(target=generate_text, args=(message,))
t.setDaemon(True)
t.start() …
Run Code Online (Sandbox Code Playgroud)

multithreading tkinter

4
推荐指数
2
解决办法
1071
查看次数

标签 统计

multithreading ×1

tkinter ×1