【发布时间】:2021-03-21 09:55:01
【问题描述】:
首先:我是这个论坛的新手,不是专业程序员,只是爱好。
这就是我所拥有的:VisualStudio 中的一个解决方案,VB.net 中有 3 个项目。 第一个项目包含常用功能等。 第二个项目是 Windows 服务。 第三个项目是 Windows 窗体 UI。
第二个第三个项目导入第一个项目。
我的问题:当第二个项目的服务正在运行并且第三个项目的 UI 启动时,我想设置一个变量(例如通过按下按钮),该变量也将在服务中设置。所以通知服务做一些特殊的事情。
我尝试在公共项目中声明这个变量,但这不起作用。经过一番搜索,我现在知道这行不通,因为服务和 UI 是单独的进程。
有几种解决方案可以在进程之间进行通信,例如IPC、共享内存、命名管道……
但是没有简单的方法可以解决我的问题吗?
非常感谢,并致以最诚挚的问候,
马蒂亚斯
【问题讨论】:
-
明明也有文件和数据库,但是你想要一个直接的进程来处理通信?
-
可能没有更简单的方法,但一个阴暗的解决方法是将变量写入文件并从第二个进程读取它。
-
@Steve:是的,有文件(.ini 文件)。但我不想从服务循环中读取这个文件。我想直接从 UI 告诉服务新值。
-
是的,当然有一个简单的解决方案。但是没有人在互联网上谈论它,因为他们更喜欢人们使用困难的解决方案。我在开玩笑,当然。如果有一个简单的解决方案,那么这就是您在搜索时首先会找到的解决方案,因为这是每个人都会使用的解决方案。
-
在配置发生变化时必须重新启动服务并不少见,所以我认为您的目标不一定是常见的或容易做到的。
标签: vb.net user-interface variables service