At one level, depending on what you are doing, there is nothing wrong with having multiple applications access the same directory or file. If he just reads the access, then by all means, both can get access to it right away.
If you have identical code in several applications, then the logical one is not going to interrupt it for synchronization, no matter what you do: each application has its own copy of the logical one and cannot change the other.
For the cross-synhronization application, I would use the Mutex class. There is a constructor that takes a string parameter that defines the name of Mutex. Mutex names are unique across all Windows, not just your application. You can do Mutex m = new Mutex(false, "MySpecialMutex"); in two different applications, and each object will refer to the same thing.
source share