我正在探索来自Traits的TraitsUI / Chaco / Enthought个软件包,因为我想利用强大的动态绘图工具。我有来自外部源的数据,我希望用它来更新一组Chaco图。我研究了spectrum.py
和data_stream.py
示例,但是他们经常在定期的Timer事件中从流/文件/源中提取数据,而不是接收异步输入事件。
我不清楚如何删除Timer而是异步触发Array更新。有可能使用Timer进行轮询,但是我想扩展以包含几个不同的外部源,我需要某种“服务器”进程来管理它 - 它实际上不能被GUI主循环阻止。截至目前,我想要合并一个TCP服务器,它接受不可预测的传入客户端连接,每个连接都提供新的数据来绘制。
是否可以设置第二个线程来处理所有套接字通信并使用它来调用.set_data()
来触发绘图重绘?或者这会干扰GUI主循环和/或导致Traits / Chaco中的竞争条件吗?
还是有另一种方法可以考虑这个在Traits范例中更有意义的问题吗?
答案 0 :(得分:2)
'set_data'会触发重绘,因此不需要计时器。但请注意,重绘发生在主要的gui线程中。