Python pygame与长函数执行时间一起显示

时间:2017-01-25 01:34:18

标签: python loops concurrency pygame display

我目前正在构建一个应用程序,该应用程序从网上抓取数据,通过一些算法运行它来组织它,然后将其显示回来。抓取过程由scrapper类中的scrape函数执行,该类操作一个非常长且简单的循环,必须从15,000个不同的URL中获取数据。这个过程当然需要很长时间,而这本身并不是一个问题。当我尝试让pygame在执行scrape函数时正确更新显示时出现问题。问题在下面的代码中说明。

def main():

    scrapper.scrape(1,15000) # begins the web scrapping

    while True:

        for event in pygame.event.get():
            if event.type == QUIT:
                pygame.quit()
                sys.exit()

            DISPLAYSURF.fill(BGCOLOR)
            pygame.display.update() # updates the display

if __name__ == "__main__": main()

据我所知,Pygame中的显示窗口需要使用pygame.display.update()行每帧更新一次。我的问题是因为s​​crapper.scrape需要几分钟才能完成执行,所以整个程序都会等待这一行,并且每帧都不会调用pygame.display.update()。我的问题是,有没有办法设置我的程序,以便scrapper.scrape能够完成它的事情,而pygame.display.update()每帧仍然被调用,以便显示可用?

0 个答案:

没有答案