2016-05-29 38 views
-1

我有一个相当简单的python脚本,不断轮询互联网来源的新数据。当找到新数据时,将其写入多个i2c 4个字母字母数字显示中的一个。应该/我该如何使用线程来改进Python脚本?

问题是,连续滚动显示屏上信息的代码需要连续循环。只需调用一个函数来写入显示器然后回到轮询新数据就简单多了。目前我必须将屏幕写入主数据收集循环。

这里是我写显示:

message = 'DATA: 1234567' 
pos = 0 
while True: 
    display.clear() 
    display.print_str(message[pos:pos+4]) 
    display.write_display() 
    pos += 1 
    if pos > len(message)-4: 
     pos = 0 
    time.sleep(0.5) ` 

我有哪些选择?我应该使用线程还是有另一种可中断后台循环的方式?

回答

1

您可以使用异步/事件驱动的框架,如支持定时器的Twisted:http://www.saltycrane.com/blog/2008/10/running-functions-periodically-using-twisteds-loopingcall/ - 这将所有内容保留在一个线程中,并且它为您提供异步API以便执行HTTP GET,因此,如果您的数据源响应缓慢。

+0

仍然意味着我必须保持显示循环与主,正确?因为我有多个显示器,我真的很想将显示逻辑从数据中分离出来。 – genepool99

+0

@genepool99:不,您会在主线程中执行* everything *,但可以将逻辑放入由Twisted中的Timer调用的函数中。 –

相关问题