python - 如何在 PyQt 中存储线程本地数据?
问题描述
在 PyQt 应用程序中存储线程本地数据的最佳方式是什么?
我的应用程序既使用QThread
s ,也通过一些依赖项使用本机 Python 线程(来自threading
模块)。我的线程本地存储的具体用例主要与前者有关。
我可以看到一些选项。
使用
threading.local
. 当从外部线程调用时threading
,threading.current_thread()
返回一个_DummyThread
对象。AFAICT,threading.local
确实支持虚拟线程,但感觉很脆弱。特别是,由于 aDummyThread
永远不会被删除,因此线程退出时不会清除存储。显然我不希望内存泄漏。当我知道有问题的代码将始终在 a 中运行时
QThread
,我可以直接将数据存储在通过QThread::getCurrentThread()
. 不知道如果从非 Qt 线程调用会发生什么。QThreadStorage
PyQt 中是否有等价物?在 Qt 中,它是一个模板,而不是一个类,所以我认为它在 PyQt 中不可用。
解决方案
推荐阅读
- c# - AutoMapper: Number of child entities
- socket.io - 使用 Vue-Devtools Shell 进行远程调试 - net::ERR_CONNECTION_REFUSED
- mysql - MYSQL - Group by and select highest result and use JOIN?
- excel - Excel VBA Web Browser Run-time error '424' object required
- ffmpeg - ffmpeg改变分辨率h.264
- selenium-webdriver - 如何从单个功能文件中的两个或三个场景执行单个场景?
- javascript - How to add loading screen to React router ambiguous matches?
- python - 将 Tensorflow 模型转换为 Tensorflow Lite
- google-cloud-platform - 设置和使用 GCP 提供的 pub-sub-to-big-query DataFlow 模板
- ruby-on-rails - 如何使用 where 子句选择 IN 字符串数组