Использование именованного события (см. Функции CreateEvent и WaitForSingleObject API).Вам потребуется два события на барьер - каждое событие создается в другом экземпляре приложения.Затем оба экземпляра ждут события друг друга.Конечно, позже эти события могут быть повторно использованы для другого барьера.
Существует одна сложность, хотя - поскольку имена событий глобально уникальны (скажем так для простоты), каждое событие будет иметь другое имя, может быть с префиксомпо идентификатору процесса экземпляра.Таким образом, каждый экземпляр приложения должен получить идентификатор другого экземпляра, чтобы найти имя события, созданного другим экземпляром.
Если у вас есть оконное приложение, вы можете передать сообщение, которое проинформирует второй экземпляр приложения о существовании первого экземпляра.