首先,我是个新手! 我已经编写了一个程序从一个文件中导入数据,并使用tkinter将其显示为图像。行为不端的循环运行如下:
for x in xrange(WIDE):
for y in xrange(HIGH):
dataPointLo = inFile.read(1)
dataPointHi = inFile.read(1)
pixelValue = ((ord(dataPointLo) + 256*(ord(dataPointHi)))-31500)
colour = rgb[pixelValue]
#print below makes prog run!
print pixelValue
img.put(colour, to=(x,y))
正如评论所建议的那样,不打印会停止它的工作,但它会将处理器的一个核心锁定在100%,只要您不打印它(至少20分钟!)。这种效果在IDLE和命令行中都会出现(ubuntu12.04)。当然,打印到空闲窗口会减慢程序的速度,所以我想删除它!有什么想法吗
听起来您正在运行的进程需要很长时间才能完成,我建议您认为它停止的原因是,除非您告诉它,否则在进程繁忙时窗口不会更新。我建议您在代码中添加如下函数,并在进入循环之前调用一次:
这样,您就可以在事件循环中添加一个事件,每100ms(ish)更新一次窗口,这将使程序保持响应。你可以调整时间,以适合你,太经常会减慢你的循环,太远的距离和程序会感到迟缓
相关问题 更多 >
编程相关推荐