【发布时间】:2016-04-22 14:54:28
【问题描述】:
我需要创建一组可以被整个计算机上的任何进程访问的变量。要求是进程之间的通信。这也可以只是一个需要反序列化的字符串。
这似乎是一个相当简单的问题。我已经研究过Mutex 和Semaphore,但如果我没记错的话,这些类似乎是用于线程同步的。
除了创建文件或注册表项之外,是否有内置功能可以执行此操作?
【问题讨论】:
-
我经常使用内存缓存产品来解决这种需求。 Memcached(一个旧的解决方案)或类似 hazelcast 的产品可以解决您的问题。除此之外,您可以使用 .Net 创建管道,但在并发方面很容易出错。
-
我想避免为此使用 3rd 方库。
-
管道是否创建了可能被防火墙阻止的套接字?为什么它们容易出错?
-
不,管道不创建套接字,它不是 TCP 连接。您只需将内存中的一部分设置为进程之间共享。它很容易出错,因为您必须自己实现并发锁机制
标签: c# variables system global