GUI 循环和另一个循环
GUI loops and another loops
我对循环感到困惑。例如 python3:
import pygame
pygame.init()
....
....
while True:
....
....
pygame.display.update()
当我使用这个时,程序使用了大约 %110 CPU。但是当我使用像 tkinter 这样的 GUI 工具包时:
import tkinter
root = tkinter.Tk()
....
....
....
root.mainloop()
它使用了大约 %0.3 CPU。我认为两者都是无限循环。如何优化第一个代码?
主要区别在于,您的典型 GUI 工具包将阻塞地等待新事件的到来,而循环体(包括绘图操作)只会在响应此类事件时执行。
然而,典型的游戏循环不会等待事件到达,因为正在进行模拟,需要不断更新,然后更新显示。
即pygame 循环旨在尽可能多地使用 CPU 循环,以提供最流畅的模拟。然而,tkinter 循环旨在花费尽可能多的 CPU 周期以节省系统资源。
我对循环感到困惑。例如 python3:
import pygame
pygame.init()
....
....
while True:
....
....
pygame.display.update()
当我使用这个时,程序使用了大约 %110 CPU。但是当我使用像 tkinter 这样的 GUI 工具包时:
import tkinter
root = tkinter.Tk()
....
....
....
root.mainloop()
它使用了大约 %0.3 CPU。我认为两者都是无限循环。如何优化第一个代码?
主要区别在于,您的典型 GUI 工具包将阻塞地等待新事件的到来,而循环体(包括绘图操作)只会在响应此类事件时执行。
然而,典型的游戏循环不会等待事件到达,因为正在进行模拟,需要不断更新,然后更新显示。
即pygame 循环旨在尽可能多地使用 CPU 循环,以提供最流畅的模拟。然而,tkinter 循环旨在花费尽可能多的 CPU 周期以节省系统资源。