【发布时间】:2013-06-13 22:48:00
【问题描述】:
我需要在 2 个正在运行的程序(例如 MyProgramA.exe 和 MyProgramB.exe)之间共享一个布尔变量的值;这些是不同的程序,而不是同一程序的实例。我更喜欢内存中的全局变量而不是带有 Windows 消息的 IPC,因为我认为在内存中设置一个可由不同程序访问的全局变量比带有 Windows 消息的 IPC 更快(即瞬时)、更安全和更可靠。
【问题讨论】:
-
你有没有尝试过?有很多不同的方法可以做到这一点,并且有大量的资源可以告诉你如何做。问题是,这被认为是一个“购物清单”问题,可能会因为有太多不同的可能答案而被关闭。
-
我不知道有什么方法可以在不同进程之间共享一个全局变量。我做了一个谷歌搜索,但没有给我这个问题的正确答案。因此,如果有很多不同的方法可以做到这一点,请仅列举一些最好的方法,以便我继续研究。
-
在 Google 搜索中,这是我在 StackOverflow 上的第一个结果:stackoverflow.com/questions/5646202/…
-
所有标准的 IPC 方法都可以做到这一点,但它们都不是真正的“共享变量”或“瞬时”。由于您熟悉 IPC 这个短语,因此请对各种这样做的方法进行一些研究,将您正在考虑的选项缩小到其中的几个,然后问一个与那些选择的选项。 (我也质疑您的“更安全、更可靠”的结论。如果两个不同的进程可以访问它,那么其他进程也可以通过各种机制访问它。)IMO,这个问题的范围非常广泛,目前的形式相当模糊。
-
正如我之前所说,进程之间没有真正的“全局共享变量”,进程之间的任何事情都不像进程中的真正变量那样“瞬时”。 IPC 涉及跨越进程边界,无论您选择何种机制,都会产生一些开销。在 same 进程中的线程之间安全地共享变量有一些开销;在不同的进程之间这样做有更多。
标签: delphi delphi-xe2 ipc