Wow! Cómo pasa el tiempoooooo. El anterior post es muy, muy, muy viejo. Si lo que quieres es utilizar el VS2008 tendrás q tener en cuenta algunas variaciones.
Imports System
Imports System.Threading

' la clase miHilo contiene la información necesaria para
' la tarea, el método que la realiza y el delegado al
' que llamaremos cuando la tarea concluya.
'
Public Class miHilo
' Información a procesar
Private pParrafada As String
Private pValor As Integer

' Delegado utilizado para ejecutar el método callback
' cuando finalice la tarea.
Private pCallback As CallBackDef

' El constructor obtiene la información de estado y el
' delegado del callback.
Public Sub New(ByVal texto As String, ByVal numero As Integer, _
ByVal callback As CallBackDef)
pParrafada = texto
pValor = numero
pCallback = callback
End Sub

' El procedimiento del hilo realiza las tareas, como
' formatear e imprimir un documento, y despues invoca
' al delegado con el número de líneas impresas.
Public Sub Tarea()
Console.WriteLine(parrafada, valor)
If Not pCallback Is Nothing Then pCallback(1)
End Sub
End Class

' Delegado que define la firma del método del callback
'
Public Delegate Sub CallBackDef(ByVal numLineas As Integer)

' Punto de entrada del ejemplo
'
Public Class Ejemplo
Public Shared Sub Main()
' Suministrar la información requerida por el trabajo
Dim hiloEjemplo As New miHilo( "Este informe muestra {0} líneas.", 42, New CallBackDef(AddressOf MostrarResultado) )

Dim t As New Thread(AddressOf hiloEjemplo.Tarea)
t.Start()
Console.WriteLine("El hilo principal lanza la tarea y espera.")
t.Join()
Console.WriteLine("La tarea idependiente ha concluido; Finaliza el hilo principal.")
End Sub

' El método de callback debe coincidir con la firma del
' delegado.
'
Public Shared Sub MostrarResultado(ByVal numLineas As Integer)
Console.WriteLine("El trabajo independiente ha imprimido {0} líneas.", numLineas)
End Sub

End Class

0 Response to "Más MultiThreading"