跳转到主要内容

允许从任何线程调用wxPython对象的方法。

项目描述

wxAnyThread:允许从任何线程调用wxPython对象的方法

在wxPython中,只有从运行主事件循环的线程调用修改GUI状态的
方法才是安全的。其他线程通常必须将事件
发送到GUI线程而不是直接调用方法。

虽然存在内置的快捷方式(例如wx.CallAfter),但它们并不能
捕获函数调用的完整语义。此模块提供了一个简单
的方法来从任何线程透明地调用方法,将返回值和异常
传播回调用线程。

主接口是一个名为"anythread"的装饰器,可以应用于方法
使其可以从任何线程安全地调用,如下所示

class MyFrame(wx.Frame)

@anythread
def GetSomeData()
dlg = MyQueryDialog(self,"Enter some data")
if dlg.ShowModal() == wx.ID_OK
resp = dlg.GetResponse()
return int(resp)
else
raise NoDataEnteredError()

GetSomeData方法现在可以从任何线程直接调用。
调用线程将在主GUI线程显示对话框时阻塞,
然后根据需要接收返回值或异常。

项目详细信息


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

wxAnyThread-0.2.2.tar.gz (2.9 kB 查看哈希值)

上传时间

由以下支持