我正在开发一个基于GUI的应用程序,它是使用python和go开发的。我正在使用python(+ Kivy)实现UI和Go在Windows操作系统上实现中间件/核心。
我的问题陈述是:
1)我想在启动应用程序时运行核心的exe,它应该保留在后台,直到我的应用程序关闭。
2)当从应用程序触发事件时,会向核心发送一个命令,该命令将在远程设备上执行命令并返回命令执行结果。
我想知道,我如何控制exe的生命周期以及如何在UI和Core之间建立通信。
任何想法!!
答案 0 :(得分:1)
有很多方法可以解决这个问题,但我建议将其中一个部分(GUI / Core)作为主要应用程序来完成所有初始化并启动另一部分。我建议使用核心。
这是您可以使用的示例架构,但您选择的架构在很大程度上取决于应用程序和您的目标。
Core首先运行,执行初始化操作,包括启动GUI,设置GUI之间的通信(使用管道,套接字等),然后等待来自GUI的命令。如果GUI信号关闭,核心可以执行任何必要的清理,然后退出。在这种情况下,exe的生命周期由GUI控制。(当用户点击退出按钮让核心知道它应该退出时,GUI向核心发送信号)
如果核心启动GUI,那么它可以为它设置STDIN / STDOUT管道并在STDOUT上侦听命令,同时在STDIN上发送结果。您还可以采用服务器方法,让核心侦听套接字,并且GUI向其发送请求并等待响应。使用服务器方法,你可以有一些不同于串行管道的并发性,但我认为它可能比管道慢(差异可能可以忽略不计,但很难说不知道你究竟在做什么)。