20 agosto, 2007

Thread con argumentos

En un artículo anterior les compartía un ejemplo de cómo trabajar con aplicaciones multi-hilo, pero para la ejecución de métodos sin argumentos, ahora quiero darles un ejemplo de cómo, con algunas pequeñas variaciones, podemos compartir información entre hilos.

Esto lo hacemos gracias a al método ParameterizedThreadStart el cual permite pasar un argumento de tipo object mediante el método start del thread, pero es mejor si vemos el ejemplo:



Imports System.threading

Module Module1

    Sub DespliegaMensaje(ByVal _texto As Object)
        For i As Integer = 1 To 5
            Console.WriteLine("Mensaje {0}, generado por el hilo: {1}", _texto.ToString, Thread.CurrentThread.ManagedThreadId)
        Next
    End Sub

    Sub Main()
        Dim metodo_a_ejecutar As New ParameterizedThreadStart(AddressOf DespliegaMensaje)
        Dim hilos(5) As Thread
        For i As Integer = 1 To 5
            hilos(i) = New Thread(metodo_a_ejecutar)
            hilos(i).Start("Hilo N°:" + i.ToString)
            If i = 5 Then hilos(i).Priority = ThreadPriority.Highest
        Next
        Console.ReadKey()
        For i As Integer = 1 To 5
            hilos(i).Abort()
        Next
    End Sub

End Module


No he mencionado nada sobre el hilo.abort(), aunque si lo he usado en los ejemplos, este método es utilizado para terminar la ejecución del hilo.


En el siguiente enlace se puede encontrar más información sobre System.Threading

http://msdn.microsoft.com/es-es/library/system.threading(VS.80).aspx

No hay comentarios.: