我正在开发一个基于GUI的应用程序,该应用程序是使用python和go开发的。我使用python(+Kivy)实现UI,并在windows上实现中间件/核心。
我的问题是:
1)我想在启动应用程序时运行内核的exe,它应该保持在后台,直到我的应用程序关闭。
2)当从应用程序触发事件时,将一个命令发送到内核,该内核将在远程设备上执行命令并返回命令执行结果。
我想知道,我如何控制执行程序的生命周期,以及如何在UI和Core之间建立通信。
任何想法!!
发布于 2016-05-19 15:53:10
有很多方法可以解决这个问题,但我建议的是将其中的一个部分(GUI/Core)作为执行所有初始化并启动另一部分的主要应用程序。我建议你用核心来解决这个问题。
这里有一个您可以使用的示例体系结构,尽管您选择的体系结构高度依赖于应用程序和目标。
Core首先运行,执行初始化操作,包括启动GUI,设置GUI之间的通信(使用管道、套接字等),然后等待来自GUI的命令。如果GUI发出关闭信号,核心可以执行任何必要的清理,然后退出。在这种情况下,exe的生存期由GUI控制。(当用户点击exit按钮让核心知道它应该退出时,GUI会向内核发送信号)
如果核心启动GUI,则可以为其设置STDIN/STDOUT管道,并侦听STDOUT上的命令,同时在STDIN上发送结果。您还可以采用服务器方法,让核心侦听套接字,GUI向它发送请求并等待响应。使用服务器方法,您可以拥有与串行管道不同的某种并发性,但我认为它可能比管道慢(差别可能可以忽略不计,但在不知道您到底在做什么的情况下很难说)。
https://stackoverflow.com/questions/37319345
复制相似问题