How to restrict number of concurrent processes?
<p>My situation is as follow:</p>

<ol>
<li>I have an application that can be started only a fixed number of times (less than 50).</li>
<li>A separate central process to manage other processes is not allowed due to business requirement. (ie. if a nice solution that involves ONLY the application processes is still acceptable)</li>
<li>I am using C# for developing the application and therefore managed solution is preferred.</li>
<li>I have to deal with "unexpected" cases such as the processes can be terminated by using TaskManager.</li>
</ol>

<p>I am thinking of solution that make use of system-wide mutex. However, it doesn't survive the "Unexpected" cases very well in the way that it leaves "abandoned" mutex. If this is a good way, may I ask what is the catch of "ignoring" the mutex abandoned?</p>
