原子操作涉及单独的过程

时间:2015-01-16 18:55:31

标签: .net process atomic atomicity

我有两个.NET应用程序,我需要在本地共享一个计数器资源。我正在寻找一种从每个应用程序原子递增或递减计数器的方法。

如果我在单个多线程应用程序中执行此操作,我只需使用共享计数器变量System.Threading.Interlocked.IncrementSystem.Threading.Interlocked.Decrement重载之一。

我的应用程序无法访问数据库,因此我无法使用DBMS锁定机制。理想情况下,我想使用注册表REG_DWORD值,但我无法找到一种以原子方式递增或递减它的方法。我还考虑过一个文件系统文件夹,其中"递增"将一个唯一命名的文件放在该文件夹中并且"递减"正在删除单个文件,但这似乎有点笨重或麻烦。

有没有人知道这方面的好方法?

1 个答案:

答案 0 :(得分:1)

您可以使用共享的Mutex在多个进程之间进行同步。

这可以让你锁定"并提供访问注册表的代码,如果这是您选择使用的共享存储机制。