跳转到主要内容

响应式后台任务的模式

项目描述

特性未来(Traits Futures)允许基于 TraitsUI 的 GUI 应用程序在不阻塞主 GUI 的情况下执行一个或多个后台任务,并提供了一种机制,使应用程序能够安全地根据后台任务的完整或部分结果更新 GUI。

详细描述

希望响应用户交互执行长时间运行任务(例如,运行耗时计算或向远程数据库提交复杂搜索查询)的 GUI 应用程序面临两个主要问题

  • 如果任务直接在主线程上执行,它会阻塞 GUI 事件循环,使整个应用程序对用户看起来没有响应。

  • 直接从工作线程更新 GUI 通常是不安全的,因此需要在工作线程上运行的任务找到一种安全地将事件回传到主 GUI 线程的方法。

对于基于 TraitsUI 的应用程序,Traits Futures 为这些问题提供了一种解决方案,其原理类似于 Python 标准库 concurrent.futures 包。任务提交给执行器,在任务提交时执行器立即返回一个“未来”对象。这个“未来”对象具有可观察的属性(“特性”),代表了应用程序对后台任务状态的看法。而不是等待未来的状态,感兴趣的观察者可以监听这些特性的更新,并在变化发生时根据需要更新 GUI 状态。Traits Futures 的机制确保对未来的特性更新始终发生在主线程上,从而使观察者免于线程安全问题的担忧。

有关更多信息,请参阅文档页面 https://docs.enthought.com/traits-futures/

项目详情


下载文件

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

源代码发行版

traits_futures-0.3.1.tar.gz (1.4 MB 查看哈希值)

上传时间 源代码

构建发行版

traits_futures-0.3.1-py3-none-any.whl (110.1 kB 查看哈希值)

上传时间 Python 3

由以下组织支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面