python可视化界面调用了某函数导致进程阻塞解决办法

简介: python可视化界面调用了某函数导致进程阻塞解决办法

在Python Tkinter中,如果在主线程中调用耗时的函数,会导致界面卡死,无法响应用户的操作。为了解决这个问题,可以使用多线程或协程来异步执行耗时的函数,使得界面可以保持响应。

为解决前:

导入数据后,点击开始陷入循环必须等for循环结束否则一直等待响应

加了线程池解决后:

任意移动,数据只有在控制台可以看得到,这里没做插入

解决方法:

import threading
import time
import tkinter as tk
def long_running_function():
    # 耗时的操作
    for i in range(6000):
        print(i)
        time.sleep(3)
def run_long_running_function():
    t = threading.Thread(target=long_running_function)
    t.start()
root = tk.Tk()
button = tk.Button(root, text="Run Long Running Function", command=run_long_running_function)
button.pack()
root.mainloop()
相关文章
|
1天前
|
消息中间件 安全 数据处理
Python中的并发编程:理解多线程与多进程的区别与应用
在Python编程中,理解并发编程是提高程序性能和响应速度的关键。本文将深入探讨多线程和多进程的区别、适用场景及实际应用,帮助开发者更好地利用Python进行并发编程。
|
1天前
|
缓存 测试技术 Python
Python中的装饰器:优雅地增强函数功能
在Python编程中,装饰器是一种强大的工具,它能够在不改变函数本身的情况下,动态地增强其功能。本文将深入探讨装饰器的工作原理、常见用法以及如何利用装饰器提高代码的可重用性和可维护性。
|
1天前
|
资源调度 计算机视觉 Python
`scipy.ndimage`是SciPy库中的一个子模块,它提供了许多用于处理n维数组(通常是图像)的函数。
`scipy.ndimage`是SciPy库中的一个子模块,它提供了许多用于处理n维数组(通常是图像)的函数。
7 0
|
1天前
|
Python
`scipy.signal`模块是SciPy库中的一个子模块,它提供了信号处理、滤波、频谱分析等功能。这个模块包含了许多用于信号处理的函数和类,其中`butter()`和`filtfilt()`是两个常用的函数。
`scipy.signal`模块是SciPy库中的一个子模块,它提供了信号处理、滤波、频谱分析等功能。这个模块包含了许多用于信号处理的函数和类,其中`butter()`和`filtfilt()`是两个常用的函数。
10 0
|
2天前
|
Python
`matplotlib`是Python中一个非常流行的绘图库,它提供了丰富的绘图接口,包括二维和三维图形的绘制。`Axes3D`是`matplotlib`中用于创建三维坐标轴的对象,而`plot_surface`则是用于在三维空间中绘制表面的函数。
`matplotlib`是Python中一个非常流行的绘图库,它提供了丰富的绘图接口,包括二维和三维图形的绘制。`Axes3D`是`matplotlib`中用于创建三维坐标轴的对象,而`plot_surface`则是用于在三维空间中绘制表面的函数。
11 0
|
2天前
|
Unix Linux Python
`subprocess`模块是Python中用于生成新进程、连接到它们的输入/输出/错误管道,并获取它们的返回(退出)代码的模块。
`subprocess`模块是Python中用于生成新进程、连接到它们的输入/输出/错误管道,并获取它们的返回(退出)代码的模块。
6 0
|
2天前
|
Python
在Python中,`multiprocessing`模块提供了一种在多个进程之间共享数据和同步的机制。
在Python中,`multiprocessing`模块提供了一种在多个进程之间共享数据和同步的机制。
4 0
|
2天前
|
安全 API Python
`multiprocessing`是Python的一个标准库,用于支持生成进程,并通过管道和队列、信号量、锁和条件变量等同步原语进行进程间通信(IPC)。
`multiprocessing`是Python的一个标准库,用于支持生成进程,并通过管道和队列、信号量、锁和条件变量等同步原语进行进程间通信(IPC)。
5 0
|
2天前
|
SQL Java C++
Python代码示例简单的print()函数使用
Python代码示例简单的print()函数使用
4 0
|
2天前
|
存储 Python
`input()` 函数是 Python 中的一个内置函数,用于从用户那里获取输入。
`input()` 函数是 Python 中的一个内置函数,用于从用户那里获取输入。
4 0