I have several threads that acquire Mutexes and then terminate.
The mutexes are stored in a main repository, and are properly released when the program exists. Howev
Looks like EventWaitHandle does what I want. It has a constructor that takes a name, so it's perfect for cross-process synch, and it doesn't have this problem.