Lanzamiento del semáforo automático en el proceso Salir

Estoy usando Semaphore para limitar la cantidad de instancias concurrentes que mi aplicación puede ejecutar.

Hay muchas formas en que un proceso puede terminar. Puede elSemaphore ser creado para que se libere automáticamente al salir del proceso?

EDITAR

Me gustaría que algo de magia limpiara automáticamente el estado 'elevado' del semáforo para el proceso que lo posee al salir o bloquearse. Solo para estar seguro de que está despejado, pase lo que pase.

MÁS

Estoy buscando una opción viable para ello, teniendo en cuenta:

sería genial que NO se requiera una aplicación externa para retener cada instancia de la aplicación protegida no tiene que ser Semáforo: cualquier objeto de sincronización que tenga CONTADOR y se libere AUTOMÁTICAMENTE al morir un proceso de propietario estará bien, incluso si está engañando a Estoy usando .NET 2.0, no puedo pasar a una versión más reciente en este proyecto, pero puedo usar c / c ++ e inter-op para aprovechar algo si hay algo

Respuestas a la pregunta(3)

Su respuesta a la pregunta