2011-04-27 10 views
5

Recibí una aplicación compleja que puede ejecutarse como servicio de Windows y como aplicación de consola.El servicio está detenido pero el proceso permanece por un minuto

Uso principalmente el inicio de la consola para la depuración. Cuando presiono Ctrl + C en la consola, la aplicación se detiene inmediatamente (el proceso finaliza).

Cuando ejecuto la aplicación como servicio y selecciono detenerla, MMC dice inmediatamente que el servicio está detenido. Sin embargo, el proceso todavía se está ejecutando y tarda aproximadamente un minuto en detenerse. No tengo ningún problema con tomarse el tiempo, pero me gustaría que MMC espere como lo hace para otros servicios. Actualmente puedo volver a iniciar el servicio mientras el proceso antiguo aún se está ejecutando y esto produce errores con recursos exclusivos. Además, "reiniciar" en MMC no funciona porque no espera a que finalice el proceso.

¿Cómo puedo hacer que mi proceso sea de espera o cómo averiguo qué hilos/procesos/métodos toman tiempo?

Respuesta

2
+0

enlaces muy útiles. Me sorprende que no pude encontrarlos. Probé la información del primer enlace y aceptaré la respuesta una vez que haya podido validar que funciona. – ZoolWay

+0

Sí funcionó. Manejar la detención de todos los hilos en 'OnStop()' lo hizo por mí, como propuse en el primer enlace sobre servicios .NET. ¡Gracias! – ZoolWay

Cuestiones relacionadas