Matar procesos

22/05/2007 - 11:12 por AiTdX100MIl | Informe spam
Mi aplicación lanza un proceso externo para ejecutar un programa mediante
Process. Sin embargo, cuando cierro mi aplicación el proceso externo continua
corriendo hasta que lo mato manualmente o termina. ¿Cómo puedo hacer que al
salir de mi programa mate este proceso?Gracias
Aitdx

Preguntas similare

Leer las respuestas

#1 AiTdX100MIl
22/05/2007 - 16:06 | Informe spam
Sí, eso ya lo sabía. Mi cuestión era si existe alguna propiedad que me
proporcione los procesos que actualmente están en ejecución para poder
matarlos. Pensé en introducir los procesos externos que estoy ejecutando en
un array y cuando envío la orden de cerrar una ventana recorrer dicho array
matando los procesos si estaban vivos. Pero si uno de estos procesos termina
antes al recorrer el array al intentar acceder al mismo salta una excepción.
Otra posibilidad es introducirlo en el array mientras se ejecuta y cuando
termina sacarlo. De modo que en el array se hallan sólo aquellos que se
encuentren vivos. Gracias.
Aitdx


"Jowie" wrote:

Mostrar la cita
#2 RFOG
22/05/2007 - 16:54 | Informe spam
En Tue, 22 May 2007 16:06:02 +0200, AiTdX100MIl
escribió:

Mostrar la cita
Pues encierras el hecho de matarlos en un bloque try/catch.

Mostrar la cita
La mejor forma es que puedas enviarles un mensaje (un simple "volatile
bool" compartido serviría) para que ellos pudieran salir solos sin
necesidad de darle un susto al .NET ni al recolector de basura.

Visita mi blog principal: http://rfog.blogsome.com
Y este sobre programación: http://geeks.ms/blogs/rfog
Libros, ciencia ficción y programación
El que dé rosas de comer al burro, cobrará con un rebuzno.
#3 AiTdX100MIl
22/05/2007 - 17:27 | Informe spam
Muchas gracias por contestar. Lo siento pero no entiendo a que te refieres con

"La mejor forma es que puedas enviarles un mensaje (un simple "volatile
bool" compartido serviría) para que ellos pudieran salir solos sin
necesidad de darle un susto al .NET ni al recolector de basura."

¿Cómo puedo hacer esto? Yo quiero matarles al salir de la aplicación y no
dejarles actuar hasta que terminen
Aitdx


"RFOG" wrote:

Mostrar la cita
#4 RFOG
22/05/2007 - 17:45 | Informe spam
En Tue, 22 May 2007 17:27:01 +0200, AiTdX100MIl
escribió:

Mostrar la cita
Si los procesos a los que aluden son clases o métodos propios (y no
ejecutables de terceros), puedes crearte una variable miembro (o un
delegado si son clases independientes) de la siguiente forma:

class hilogen
{
private volatile bool terminar;

public hilogen() {terminar=false;}

puiblic proceso()
{
for(;;)
{
// hacer cosas
if(terminar)
break;
}
}

Y en cualquier otro lado, en la aplicación:

terminar=true;


Visita mi blog principal: http://rfog.blogsome.com
Y este sobre programación: http://geeks.ms/blogs/rfog
Libros, ciencia ficción y programación
El que dé rosas de comer al burro, cobrará con un rebuzno.
#5 AiTdX100MIl
22/05/2007 - 17:56 | Informe spam
Se trata de un proceso que ejecuta un programa de un tercero. Como si
quisiera arrancara un reproductor. Entonces yo creo un Process e indico el
nombre del ejecutable y los argumentos y a continuación sólo ejecuto
proceso.Start y luego proceso.WaitForExit. Gracias
Aitdx


"RFOG" wrote:

Mostrar la cita
Ads by Google
Search Busqueda sugerida