Controlar 2 servicios Windows con Mutex

29/01/2009 - 14:00 por Alhambra Eidos Desarrollo | Informe spam
Hola a todos,

tengo por ejemplo 2 servicios windows, podría tener más...

Quiero controlar los dos servicios Windows A y B entre ellos, es decir,

- si el servicio A se inicia tiene que comprobar que el servicio B esté
iniciado, sino tiene que iniciarlo.

- si el servicio B se inicia tiene que comprobar que el servicio A esté
iniciado, sino tiene que iniciarlo.

Me comentaron que se podría hacer con Mutex, pero no tengo muy claro lo que
son y ando perdido.

Me gustaría ver un ejemplo con código con este caso.

Alguna sugerencia, código de ejemplo, aplicaciones de prueba ???

Gracias de antemano.

http://www.alhambra-eidos.es/web2005/index.html
www.kiquenet.com/churrosoft
http://www.setbb.com/putainformatic...opic.php?p„3
www.trabajobasura.com/solusoft
 

Leer las respuestas

#1 Alberto Poblacion
29/01/2009 - 14:40 | Informe spam
"Alhambra Eidos Desarrollo"
wrote in message
news:
tengo por ejemplo 2 servicios windows, podría tener más...

Quiero controlar los dos servicios Windows A y B entre ellos, es decir,

- si el servicio A se inicia tiene que comprobar que el servicio B esté
iniciado, sino tiene que iniciarlo.

- si el servicio B se inicia tiene que comprobar que el servicio A esté
iniciado, sino tiene que iniciarlo.

Me comentaron que se podría hacer con Mutex, pero no tengo muy claro lo
que
son y ando perdido.



Más bien lo que tendrías que usar es la clase ServiceController para
comprobar si el servicio está iniciado, y en caso contrario ponerlo en
marcha. La única peculiaridad es que si los dos servicios se intentan
iniciar simultaneamente, y los dos entran a la vez en el cacho de código que
comprueba si el otro está iniciado, que ocurra que cada uno de ellos intente
simultaneamente iniciar el otro. Esto se puede evitar usando un MutEx
(semáforo de Exclusión Mútua) para evitar que los dos procesos entren
simultáneamente en esa región crítica. Pero la verdad, no creo que valga la
pena usa el MutEx: en el improbable caso de que los dos entren a la vez y
uno de ellos intente iniciar el otro cuando ya se está iniciando, lo más que
puede ocurrir es que se produzca una excepción al hacer la llamada al Start
del ServiceController, y bastaría con meterlo dentro de un Try...Catch e
ignorar este error.

Preguntas similares