python - 如何在 python GUI 应用程序中创建线程?

标签 python multithreading user-interface

<分区>

如果应用程序必须在某个时刻读取大文件,那么在 Python GUI 应用程序中使用线程的最正确方法是什么?可能会有 2 个线程,1 个用于 GUI,1 个用于读取文件。 我应该在应用程序启动时创建线程,还是应该在必须读取文件时创建“文件读取”线程?

最佳答案

这个问题很模糊,因为您可能应该准确指定您所指的是哪个 gui 库。

在我所知道的大多数 GUI 中,主要设计是只有一个线程(主线程)应该处理 GUI,因此重要的是其他线程从不直接与用户界面交互。您通常可以从不同的线程做的唯一一件事是发布-为主 GUI 循环发送消息。

例如,如果您需要进度,则在主线程中打开进度窗口,启动阅读器线程,该线程会在阅读过程中不断发布消息,然后在过程完成后发送最后一条消息。在处理这些发布的(异步)消息时,与界面的任何交互都应在主线程中完成。

例如,如果您还需要实现一个取消按钮,那么主线程应该只设置一个变量供工作线程注意(对于简单的变量赋值,Python 中不需要互斥保护,因为赋值是一个原子操作)。

关于python - 如何在 python GUI 应用程序中创建线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21824413/

相关文章:

python - 使用 SQLAlchemy 将 BLOB 流式传输到 MySQL

Java线程设计

user-interface - TabControl透明背景

jquery - IE7 Jquery UI Sortable问题

python - 我需要在@app.route() 中使用 methods= ['GET' , 'POST' ] 吗?

python - PyGame 窗口停止显示

python - 将文本数据添加到未知的特定散点

java - 线程不同时运行

java - 通过处理程序消息以最少的分配传递数组的副本?

Android View 设计问题