Hola a todos,
tengo un problema a la hora de utilizar threads (hilos) en mi aplicación. El código es el siguiente:
Código:
Public Class PopUpMantenimiento
Private mensaje As New ArrayList
Private avisos As New ArrayList
Private hilos As New ArrayList
Private i As Integer
Public Sub New()
End Sub
Public Sub Work()
Try
mensaje.Add("Hola 1")
mensaje.Add("Hola 2")
mensaje.Add("Hola 3")
For i = 0 To mensaje.Count - 1
avisos.Add(New ClaseThread(mensaje(i)))
hilos.Add(New Thread(AddressOf CType(avisos.Item(i), ClaseThread).Work))
CType(hilos.Item(i), Thread).Start()
Next
Catch ex As Exception
Throw ex
End Try
End Sub
Donde claseThread es la siguiente:
Código:
Public Class ClaseThread
Private Shared mensaje As String
Private i As Integer
Public Sub New(ByVal mens As String)
MyBase.New()
mensaje = mens
End Sub
Public Sub Work()
Dim aviso As New formulario
aviso.Label1.Text = mensaje
aviso.Focus()
aviso.ShowDialog()
End Sub
End Class
El problema es que al ejecutar el procedimiento Work() de la clase PopUpMantenimiento me muestra los 3 formularios que debería mostrar, pero siempre lo hace con el valor "Hola 3" en el label. Alguien sabría decirme a que se debe y como solucionarlo?? Me estoy volviendo loca con este tema!!
Muchas gracias