2016-04-22 107 views
0

我需要创建一组可供整个计算机上的任何进程访问的变量。要求是流程之间的沟通。这也可以只是一个需要反序列化的字符串。如何创建系统范围变量?

这似乎是一个相当简单的问题。我已经看过MutexSemaphore,但是如果我没有弄错的话,这些类似乎是线程同步的。

除了创建文件或注册表项之外,是否有内置的int功能来执行此操作?

+0

我经常使用内存缓存产品来解决这种需求。 Memcached(旧解决方案)或类似产品的榛子会解决您的问题。除此之外,您可以使用.Net创建管道,但在并发性方面存在错误。 –

+0

我想为此避免第三方库。 – bytecode77

+0

然后我的建议是使用管道:https://msdn.microsoft.com/en-us/library/bb546085(v=vs.110).aspx –

回答

0

A mutex可用于跨多个进程。

您与

new Mutex(true, "theMutex"); 

创建它,并可以通过使用

new Mutex(false, "theMutex"); 

将字符串INT的构造是用于互斥的系统宽标识符从其它进程访问它。您只能在创建它的一个进程中设置第一个参数为true。

(至少这就是我今天在讲座中学到的)

+1

我已研究过互斥锁,它似乎我喜欢他们只是为了线程同步,而不是传递数据。或者有没有一种方法可以将实际的字符串传递给另一个进程? – bytecode77

+0

是的,我的坏。我在MSDN上找到了这个:[Interprocess Communications](https://msdn.microsoft.com/en-us/library/windows/desktop/aa365574(v=vs.85).aspx) – Nefrin