2016-04-22 97 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