python子线程调用主线程的控件显示_从虚拟线程中的调用在主线程中执行Python函数...

本文介绍了如何在Python中通过Queue实现子线程与主线程之间的通信,使得子线程可以调用主线程的控件显示。示例代码展示了如何创建一个队列,并在子线程中填充函数,由主线程来执行这些函数,从而避免了跨线程操作的问题。
摘要由CSDN通过智能技术生成

小编典典

您想使用Queue(现在是python

3的队列)类来设置一个队列,您的虚拟线程将使用函数填充该队列,而主线程会使用该队列。

import Queue

#somewhere accessible to both:

callback_queue = Queue.Queue()

def from_dummy_thread(func_to_call_from_main_thread):

callback_queue.put(func_to_call_from_main_thread)

def from_main_thread_blocking():

callback = callback_queue.get() #blocks until an item is available

callback()

def from_main_thread_nonblocking():

while True:

try:

callback = callback_queue.get(False) #doesn't block

except Queue.Empty: #raised when queue is empty

break

callback()

演示:

import threading

import time

def print_num(dummyid, n):

print "From %s: %d" % (dummyid, n)

def dummy_run(dummyid):

for i in xrange(5):

from_dummy_thread(lambda: pr

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值