我有两个.NET应用程序,我需要在本地共享一个计数器资源。我正在寻找一种从每个应用程序原子递增或递减计数器的方法。
如果我在单个多线程应用程序中执行此操作,我只需使用共享计数器变量System.Threading.Interlocked.Increment
和System.Threading.Interlocked.Decrement
重载之一。
我的应用程序无法访问数据库,因此我无法使用DBMS锁定机制。理想情况下,我想使用注册表REG_DWORD
值,但我无法找到一种以原子方式递增或递减它的方法。我还考虑过一个文件系统文件夹,其中"递增"将一个唯一命名的文件放在该文件夹中并且"递减"正在删除单个文件,但这似乎有点笨重或麻烦。
有没有人知道这方面的好方法?