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:

Mostrar la cita
#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:
Mostrar la cita
estoy
Mostrar la cita
proceso,
Mostrar la cita
principal.
Mostrar la cita
ya
Mostrar la cita
idea
Mostrar la cita
#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.
#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:

Mostrar la cita
Ads by Google
Search Busqueda sugerida