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