Estoy trabajando en 2 servicios de Windows que tienen una base de datos común que quiero bloquear (proceso cruzado) con un sistema Mutex.¿Debo eliminar un Mutex?
Ahora me pregunto si está bien para simplemente llamar WaitOne()
y ReleaseMutex()
en un bloque try-finally
o debería también disponer el objeto mutex (por ejemplo, en un bloque using
). Si es así, creo que siempre debería tomar el AbandonedMutexException
en el método WaitOne()
o ¿me equivoco aquí?
Necesita la excepción AbandonedMutexException para informarle que el servicio que posee el mutex ha finalizado inesperadamente. En ese caso, * tiene * que dejar de usar el dbase y esperar a que el otro servicio se inicie nuevamente.Usar un tercer proceso para actuar como el árbitro sería sabio. –