响应式后台任务的模式
项目描述
特性未来(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 查看哈希值)
关闭
traits_futures-0.3.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 47f414541cf2ebbba5c0a8595aec76083a4fa16d441f05bde8b7436ece19c71d |
|
MD5 | cd0c9662f1487698008246b8e044318d |
|
BLAKE2b-256 | c49fbe70d6a45b3646e9700236761d8fe9ca227994a80c2ab29e1d2f1a8c63d0 |
关闭
traits_futures-0.3.1-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0b57a1cb40c528e17afc3bdd606ca7cc0340b715334085e425626231295e78e8 |
|
MD5 | 0a7c24c3e3baf98e70753b08ab1b3eba |
|
BLAKE2b-256 | c6a75b8fbf9208c59252a0d336f8ec8cfe07dda199ff5659b6fac62bf15fdbca |