threads en arbol

08/01/2005 - 22:01 por axxegfx | Informe spam
Estoy realizando un programa que realiza el lanzamiento de 5 threads.
Estos threads a su vez lanzan 10 threads mas, necesito alguna forma de
que primero completen los 10 threads y así hacia el inicio.

¿ Alguna sugerencia ?

Preguntas similare

Leer las respuestas

#1 SqlRanger
09/01/2005 - 00:47 | Informe spam
¿Podrías ser más explícito? no entiendo qué threads tienen que esperar a
cuales.

Saludos:

Jesús López
MVP

"axxegfx" escribió en el mensaje
news:
Mostrar la cita
#2 axxegfx
09/01/2005 - 11:25 | Informe spam
imagina un arbol de 1-5-10 , 1 es el programa,5 son los primeros threads y
cada uno de los 5 threads arranca a su vez 10 threads, necesito que finalicen
primero los 10*5 o sea los que ha generado en último lugar y así hacia atrás.

Gracias por ayudarme es la primera vez que programo threads y es
impresionante.

"SqlRanger" wrote:

Mostrar la cita
#3 SqlRanger
09/01/2005 - 18:32 | Informe spam
De verdad que quisiera ayudarte pero sigo sin entenderte,

Vamos a ver, supongamos que en vez de ser 1-5-10 sea 1-2-3 para simplificar.
Tendríamos los siguientes subprocesos:

t1
t11
t111
t112
t113
t12
t121
t122
t123

¿Qué subprocesos tienen que esperar a que terminen qué subprocesos para
comenzar a hacer qué cosas ?

o sea, no entiendo lo que quieres decir con que tienen que finalizar los
5*10 primero, ¿primero que qué? ¿para continuar con qué?

De todas maneras te puedo decir que para esperar a que termine un subproceso
t, puedes llamar a t.Join()

Saludos:

Jesús López


"axxegfx" escribió en el mensaje
news:
Mostrar la cita
finalicen
Mostrar la cita
atrás.
Mostrar la cita
#4 axxegfx
09/01/2005 - 18:49 | Informe spam
t111
t112
t113
simultaneamente
t121
t122
t123
una vez finalizados estos finalizar
t1
t2

¿ Se puede hacer con Join?

"SqlRanger" wrote:

Mostrar la cita
#5 SqlRanger
09/01/2005 - 20:58 | Informe spam
No estoy seguro de que sea esto lo que quieres, pero ahí va:

El Método DoWorkAndWaitForCompletion, crea dos hilos (t1 y t2), los arranca
y espera a que finalicen antes de volver.

El hilo t1 crea tres hilos y espera a que terminen antes de finalizar
El hilo t2 crea otros tres hilos y espera a que terminen antes de finalizar

De esta manera DoWorkAndWaitForCompletion no vuelve hasta que no se terminan
los 6 hilos.

Public Sub DoWorkAndWaitForCompletion()
Dim t1 As New Thread(AddressOf DoWork1)
Dim t2 As New Thread(AddressOf DoWork2)
t1.Start()
t2.Start()
t1.Join()
t2.Join()
End Sub

Public Sub DoWork1()
Dim s1 As New Thread(AddressOf DoSubWork1)
Dim s2 As New Thread(AddressOf DoSubWork1)
Dim s3 As New Thread(AddressOf DoSubWork1)
s1.Start()
s2.Start()
s3.Start()
s1.Join()
s2.Join()
s3.Join()
End Sub

Public Sub DoWork2()
Dim s1 As New Thread(AddressOf DoSubWork2)
Dim s2 As New Thread(AddressOf DoSubWork2)
Dim s3 As New Thread(AddressOf DoSubWork2)
s1.Start()
s2.Start()
s3.Start()
s1.Join()
s2.Join()
s3.Join()
End Sub

Public Sub DoSubWork1()
' esperar simulando hacer algo
Thread.CurrentThread.Sleep(500)
End Sub

Public Sub DoSubWork2()
' esperar simulando hacer algo
Thread.CurrentThread.Sleep(500)
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Me.DoWorkAndWaitForCompletion()
MsgBox("Trabajo completado")
' Nota: esto tarda un poquitín más de 500 ms
End Sub


Saludos:

Jesús López
MVP

"axxegfx" escribió en el mensaje
news:
Mostrar la cita
simplificar.
Mostrar la cita
subproceso
Mostrar la cita
threads y
Mostrar la cita
esperar a
Mostrar la cita
threads.
Mostrar la cita
forma de
Mostrar la cita
Ads by Google
Search Busqueda sugerida