我处于这样一种情况,我需要撕开一个GUI应用程序(使用wx编写并扭曲,在MS Windows上运行),取出核心逻辑并将其作为cron作业部署在没有GUI的Linux服务器上环境。
我用threading.timer替换了一些wx.CallLater和wx.CallAfter。显然它不起作用。原始代码在多线程环境中不能很好地运行。这可能是因为某些底层库不是线程安全的。线程也可能不会像扭曲一样安排工作。
因此,它是GUI应用程序的典型工作流程:
用户切换按钮以启动实时数据读取器(以C语言编写)
切换按钮变为绿色后,表示阅读器已启动并正在运行。用户继续在不同的实时数据类型之间切换
当新的数据集准备就绪后,用户将开始使用应用程序中的其他功能。
我的问题:
如何使用twisted重新创建上述工作流程?扭曲的哪些工具允许我等待第2步中提到的实时数据读取器的准备情况?
主线程中的所有内容都会“发生”吗?
答案 0 :(得分:1)
如何使用twisted来重新创建上述工作流程?扭曲的哪些工具允许我等待实时数据读取器的准备就绪,如步骤2中所述?
reactor.callLater
- http://twistedmatrix.com/documents/current/core/howto/time.html
主线程中的所有内容都会“发生”吗?
是 - http://twistedmatrix.com/documents/current/core/howto/reactor-basics.html