tengo un problema a la hora de utilizar threads (hilos) en mi aplicación. El código es el siguiente:
Código:
Donde claseThread es la siguiente: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
Código:
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!!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
Muchas gracias