2015-01-16 4 views
1

У меня есть два приложения .NET, которые я создаю, которые должны совместно использовать ресурс-счетчик локально. Я ищу способ атомарного увеличения или уменьшения счетчика от каждого приложения.Атомная операция, связанная с отдельными процессами

Если бы я делал это в одном многопоточном приложении, я бы просто использовал одну из перегрузоки System.Threading.Interlocked.Decrement с общей переменной счетчика.

Мои приложения не имеют доступа к базе данных, поэтому я не могу использовать механизмы блокировки СУБД. В идеале я хотел бы использовать значение реестра REG_DWORD, но я не могу понять, как увеличить или уменьшить его атомарно. Я также рассмотрел наличие папки файловой системы, где «incrementing» помещает уникальный файл в папку, а «декрементирование» - удаление одного файла, но это кажется немного громоздким или громоздким для подхода.

Кто-нибудь знает о хорошем подходе к этому?

+0

Используйте Mutex для межпроцессной синхронизации. –

ответ

1

Вы можете использовать общий Mutex для синхронизации между несколькими процессами.

Это позволяет вам «блокировать» и обеспечивать защиту вокруг кода, который обращается к реестру, если это общий механизм хранения, который вы решите использовать.

Смежные вопросы