检查键盘输入使用过多的 CPU 使用率,我的代码有问题吗?

我正在制作一个简单的音乐播放器,这样我就可以在全屏应用程序中暂停音乐。代码工作正常,但我注意到它使用了大约 15% 的 cpu 使用率。我只是想知道我的代码是否有问题。


import keyboard


listedSongs = []

currentSong = "idk"

while True:

    if keyboard.is_pressed('alt+k'):

        i = 1

        paused = False

    elif keyboard.is_pressed('alt+q'):

        break

    elif keyboard.is_pressed('alt+s'):

        if currentSong not in listedSongs:

                listedSongs.append(currentSong)

                print(listedSongs)




任何帮助,将不胜感激 :)


千巷猫影
浏览 178回答 1
1回答

青春有我

它消耗这么多资源的最大原因是:while True:本质上,程序永远不会停下来等待任何事情。它不断地、一遍又一遍地检查键盘上的按钮是否被按下。一种更好的方法(在计算机上成本更低)是分配一个“回调”以在您按下所需键时调用,并使程序在两次按键之间休眠。该keyboard库提供此功能:import keyboardimport timelistedSongs = []currentSong = "idk"exit = False  # make a loop control variabledef alt_k():    i = 1    paused = Falsedef alt_q():     exit = Truedef alt_s():    if currentSong not in listedSongs:        listedSongs.append(currentSong)        print(listedSongs)# assign hooks to the keyboardkeyboard.on_press_key("alt+k", alt_k)  # on press alt+k, execute alt_k()keyboard.on_press_key("alt+q", alt_q)keyboard.on_press_key("alt+s", alt_s)# main loopwhile not exit:    keyboard.wait()  # "block" for input (essentially, do nothing until a key is pressed and yield CPU resources to anything else that wants them)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python