Multithreading wxpython使用带线程长时间运行过程的仪表脉冲
我正在开发的程序使用线程来处理长时间运行的进程。我希望能够使用Gauge Pulse向用户显示,当长时间运行的线程正在进行时,实际发生了一些事情。否则,在处理大文件时,在相当长的一段时间内,视觉上什么也不会发生&用户可能会认为程序什么也没做 我在程序的状态栏中放置了一个量规。我的问题是这个。我在尝试调用gauge pulse时遇到问题,无论我将代码放在何处,它要么运行快然后停止,要么以正确的速度运行几秒钟然后停止 我尝试将下面的一行代码放入线程本身。我还尝试从长时间运行的进程线程中创建另一个线程来调用下面的代码。我仍然遇到同样的问题 我不认为我可以使用wx.CallAfter,因为这会破坏这一点。需要在进程运行时调用Pulse,而不是事后调用。我也试过使用time.sleep(2),这也不好,因为它会减慢进程,这是我想要避免的。即使是在利用时间睡觉的时候,我仍然有同样的问题 任何帮助都将不胜感激Multithreading wxpython使用带线程长时间运行过程的仪表脉冲,multithreading,wxpython,gauge,pulse,Multithreading,Wxpython,Gauge,Pulse,我正在开发的程序使用线程来处理长时间运行的进程。我希望能够使用Gauge Pulse向用户显示,当长时间运行的线程正在进行时,实际发生了一些事情。否则,在处理大文件时,在相当长的一段时间内,视觉上什么也不会发生&用户可能会认为程序什么也没做 我在程序的状态栏中放置了一个量规。我的问题是这个。我在尝试调用gauge pulse时遇到问题,无论我将代码放在何处,它要么运行快然后停止,要么以正确的速度运行几秒钟然后停止 我尝试将下面的一行代码放入线程本身。我还尝试从长时间运行的进程线程中创建另一个线程
progress_bar.Pulse()
在长时间运行的过程中,您需要找到某种方法从线程向主GUI发送更新请求。例如,如果您正在使用线程下载一个非常大的文件,您将分块下载它,并且在每个块完成后,您将向GUI发送更新 如果您正在运行一些不允许使用块的操作,例如使用fop创建大型PDF,那么我想您可以使用一个wx.Timer()命令仪表每隔一段时间脉冲一次。然后,当线程完成时,它将发送一条消息,阻止计时器对象更新仪表 如果你只是想向用户展示你的应用程序正在做什么,前者最适合显示进度,而后者则有效。另见