猿问

Windows机器上UI和Core之间的通信

我正在开发一个基于 GUI 的应用程序,它是使用 python 和 go 开发的。我正在使用 python(+Kivy) 来实现 UI,并使用 Go 在 Windows 操作系统上实现中间件/核心。

我的问题陈述是:

1)我想在启动应用程序时运行核心的 exe,它应该保持在后台,直到我的应用程序关闭。

2) 当应用程序触发事件时,向内核发送命令,内核轮流在远程设备上执行命令并返回命令执行结果。

我想知道,我如何控制 exe 的生命周期以及如何在 UI 和 Core 之间建立通信。

有任何想法吗!!


慕妹3146593
浏览 160回答 1
1回答

大话西游666

有很多方法可以解决这个问题,但我建议将其中一个部分(GUI/Core)作为执行所有初始化并启动另一部分的主要应用程序。我建议为此使用核心。这是您可以使用的示例架构,尽管您选择的架构高度依赖于应用程序和您的目标。核心首先运行,执行初始化操作,包括启动 GUI,设置 GUI 之间的通信(使用管道、套接字等),然后等待来自 GUI 的命令。如果 GUI 发出关闭信号,核心可以执行任何必要的清理操作,然后退出。在这种情况下,exe 的生命周期由 GUI 控制。(当用户点击退出按钮时,GUI 会向核心发送一个信号,让核心知道它应该退出)如果内核启动 GUI,那么它可以为其设置 STDIN/STDOUT 管道并在 STDOUT 上侦听命令,同时在 STDIN 上发送结果。您还可以采用服务器方法,让核心在套接字上侦听,GUI 向它发送请求并等待响应。使用服务器方法,您可以拥有与串行管道不同的某种并发性,但我认为它可能比管道慢(差异可能可以忽略不计,但如果不知道您到底在做什么,很难说)。
随时随地看视频慕课网APP

相关分类

Go
我要回答