【发布时间】:2013-07-26 03:47:15
【问题描述】:
我已经看到了一些几乎相同问题的答案,但没有 C# 代码可以帮助我理解。
我有一个注入内存的 C++ .DLL 文件。虽然,这个 DLL 只是从应用程序中获取信息,也从 C# .exe 中获取信息。
C#的exe信息每秒都会变化,而C++的信息只会变化一到两次。
如何在两个正在运行的应用程序之间创建共享变量,以及如何读取/写入它?
谢谢!
【问题讨论】:
-
或许redis.io?
-
嗯,不完全……解释得不是很好……我更多的是寻找可以放入内存的东西,比如结构或其他东西
-
其实redis就是这样。它是一个内存共享结构服务器。它被设计为轻量级系统,用于填充可由多个进程访问的值。 API 很简单,几乎所有可以想象的语言都有客户端。您可以启动一个 redis 实例并让多个程序读取和写入,或者您可以在跨网络的进程可以访问的远程服务器上运行 redis。没有管理或用户访问列表,它只是存储和检索简单或复杂值的快速方法
-
还有 ZeroMQ (zeromq.org),它的基础设施更少(没有服务器,库就是服务器),它允许您以多种语言连接进程,也可以选择跨网络连接(ZeroMQ不仅使用 TCP/IP,它还具有进程间共享)。不同之处在于 ZeroMQ 没有持久性,它更多的是事件驱动的数据传递,因此每个环境都将负责记住公共变量的最后一个值。
标签: c# c++ memory shared inject