Ayuda con threads

09/11/2004 - 21:44 por Sandro D. Garcia | Informe spam
Hola, quisiera saber si alguno hizo ya algo con multihilos, porque estoy
intentando hacer algo y tengo un problema.
Lo que estoy haciendo es crear un hilo para poner a correr un proceso,
este lo que hace es llamar a un instalador de MSDE. Mi idea es lanzar el
proceso y esperar a que termine antes de continuar con el hilo principal.
Para eso tengo este código:
im p As New InstMSDE ' Es una clase creada para empaquetar el proceso ya
este devuelve un boolean

Dim thr As New System.Threading.Thread(AddressOf p.Install)

Try

thr.Start()

thr.Join()

'Me.Dispose(True)

Catch ex As Exception

MsgBox(ex.Message)

End Try



El tema es que estoy no espera a que el proceso que se ejecuta en THR
termine para continuar la ejecución normal del programa. Alguien tiene idea
de que me estoy olvidando ?

Preguntas similare

Leer las respuestas

#1 Jorge Serrano [MVP VB]
09/11/2004 - 22:10 | Informe spam
Hola Sandro,

mira este artículo que escribí:
http://weblogs.golemproject.com/jor.../1707.aspx

Espero que te sirva.

Un saludo,

Jorge Serrano
MVP VB.NET


"Sandro D. Garcia" wrote:

Hola, quisiera saber si alguno hizo ya algo con multihilos, porque estoy
intentando hacer algo y tengo un problema.
Lo que estoy haciendo es crear un hilo para poner a correr un proceso,
este lo que hace es llamar a un instalador de MSDE. Mi idea es lanzar el
proceso y esperar a que termine antes de continuar con el hilo principal.
Para eso tengo este código:
im p As New InstMSDE ' Es una clase creada para empaquetar el proceso ya
este devuelve un boolean

Dim thr As New System.Threading.Thread(AddressOf p.Install)

Try

thr.Start()

thr.Join()

'Me.Dispose(True)

Catch ex As Exception

MsgBox(ex.Message)

End Try



El tema es que estoy no espera a que el proceso que se ejecuta en THR
termine para continuar la ejecución normal del programa. Alguien tiene idea
de que me estoy olvidando ?



Respuesta Responder a este mensaje
#2 Sandro D. Garcia
09/11/2004 - 22:26 | Informe spam
Gracias Jorge, algo similar es lo que hice, el tema es que tengo que
pausar uno de los hilos hasta que el nuevo hilo termine sus tareas. Tenía
entendido que estoy se lograba con el join. Pero parece que no es así.

"Jorge Serrano [MVP VB]"
escribió
en el mensaje news:
Hola Sandro,

mira este artículo que escribí:
http://weblogs.golemproject.com/jor.../1707.aspx

Espero que te sirva.

Un saludo,

Jorge Serrano
MVP VB.NET


"Sandro D. Garcia" wrote:

> Hola, quisiera saber si alguno hizo ya algo con multihilos, porque


estoy
> intentando hacer algo y tengo un problema.
> Lo que estoy haciendo es crear un hilo para poner a correr un


proceso,
> este lo que hace es llamar a un instalador de MSDE. Mi idea es lanzar el
> proceso y esperar a que termine antes de continuar con el hilo


principal.
> Para eso tengo este código:
> im p As New InstMSDE ' Es una clase creada para empaquetar el proceso


ya
> este devuelve un boolean
>
> Dim thr As New System.Threading.Thread(AddressOf p.Install)
>
> Try
>
> thr.Start()
>
> thr.Join()
>
> 'Me.Dispose(True)
>
> Catch ex As Exception
>
> MsgBox(ex.Message)
>
> End Try
>
>
>
> El tema es que estoy no espera a que el proceso que se ejecuta en THR
> termine para continuar la ejecución normal del programa. Alguien tiene


idea
> de que me estoy olvidando ?
>
>
>
Respuesta Responder a este mensaje
#3 Tristan
10/11/2004 - 11:19 | Informe spam
La verdad es que sin conocer el método del subproceso
(p.Install) no puedo estar seguro de lo que necesitas.

Debes tener en cuenta que en principio los procesos
también se ejecutan en paralelo. Si no exiges que el
proceso espere a su finalización, de poco te servirá el
Join del suproceso, puesto que el subproceso terminará
inmediatamente.

Lo que deberías hacer es lanzar el proceso, y
posteriormente hacer una llamada a WaitForExit del objeto
Process resultante. No necesitas subprocesos para esperar
a que termine un proceso.
Respuesta Responder a este mensaje
#4 Jorge Serrano [MVP VB]
10/11/2004 - 12:18 | Informe spam
Hola Sandro,

prueba con
MyThread.Suspend
o
MyThread.Sleep(milisegundos)

Espero que te sirva.

Un saludo,

Jorge Serrano
MVP VB.NET



"Sandro D. Garcia" wrote:

Gracias Jorge, algo similar es lo que hice, el tema es que tengo que
pausar uno de los hilos hasta que el nuevo hilo termine sus tareas. Tenía
entendido que estoy se lograba con el join. Pero parece que no es así.

"Jorge Serrano [MVP VB]"
escribió
en el mensaje news:
> Hola Sandro,
>
> mira este artículo que escribí:
> http://weblogs.golemproject.com/jor.../1707.aspx
>
> Espero que te sirva.
>
> Un saludo,
>
> Jorge Serrano
> MVP VB.NET
>
>
> "Sandro D. Garcia" wrote:
>
> > Hola, quisiera saber si alguno hizo ya algo con multihilos, porque
estoy
> > intentando hacer algo y tengo un problema.
> > Lo que estoy haciendo es crear un hilo para poner a correr un
proceso,
> > este lo que hace es llamar a un instalador de MSDE. Mi idea es lanzar el
> > proceso y esperar a que termine antes de continuar con el hilo
principal.
> > Para eso tengo este código:
> > im p As New InstMSDE ' Es una clase creada para empaquetar el proceso
ya
> > este devuelve un boolean
> >
> > Dim thr As New System.Threading.Thread(AddressOf p.Install)
> >
> > Try
> >
> > thr.Start()
> >
> > thr.Join()
> >
> > 'Me.Dispose(True)
> >
> > Catch ex As Exception
> >
> > MsgBox(ex.Message)
> >
> > End Try
> >
> >
> >
> > El tema es que estoy no espera a que el proceso que se ejecuta en THR
> > termine para continuar la ejecución normal del programa. Alguien tiene
idea
> > de que me estoy olvidando ?
> >
> >
> >



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida