Ejemplo UNO
''' <summary> ''' Ejecutar la tarea ''' </summary> Public Overrides Sub ExecuteTrabajo() Dim taskA As New Task(Of String)(Function() Dim resultado As Task(Of String) = ExecuteLoadFileAsync( NombreFicheroFileInfo, Codificacion) Return resultado.Result End Function) ' Arrancar la ejecucion de la tarea. taskA.Start() ' Esperar a que termine la tarea taskA.Wait() ' Carga el valor en la propiedad miembro TextoLeidoDelDisco = taskA.Result End Sub
Private Shared Async Function ExecuteLoadFileAsync( ByVal paramNombreFicheroFileInfo As System.IO.FileInfo, ByVal paramCodificacion As System.Text.Encoding) As Task(Of String) '--------------------------- ' Control de datos de entrada ' /Eof Control de datos de entrada '-------------------------------------------- '-------------------------------------------- Dim AuxTextoLeido As String = String.Empty '------------------------------------------ ' lee del disco, el contenido del fichero Using fs As New System.IO.FileStream(paramNombreFicheroFileInfo.FullName, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Read) Using sr As New System.IO.StreamReader(fs, paramCodificacion, True) AuxTextoLeido = Await sr.ReadToEndAsync() End Using End Using '/ Eof Proceso de lectura '--------------------- ' devolver el valor de texto leido Return AuxTextoLeido End Function
Ejemplo DOS
''' <summary> ''' VERSION ALTERNATIVA Ejecutar la tarea ''' </summary> Public Function ExecuteTrabajoDos( ByVal paramNombreFicheroFileInfo As System.IO.FileInfo, ByVal paramCodificacion As System.Text.Encoding) As String ' ' Dim taskLoad As Task(Of String) taskLoad = Task(Of String).Factory.StartNew(Function() '------------------------------------------ Dim resultado As Task(Of String) ' ' lee del disco, el contenido del fichero Using fs As New System.IO.FileStream(paramNombreFicheroFileInfo.FullName, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Read) Using sr As New System.IO.StreamReader(fs, paramCodificacion, True) resultado = sr.ReadToEndAsync() End Using End Using '/ Eof Proceso de lectura '--------------------- ' devolver el valor de texto leido Return resultado.Result End Function) ' ' Esperar a que termine la tarea taskLoad.Wait() ' Carga el valor en la propiedad miembro TextoLeidoDelDisco = taskLoad.Result ' devolver el valor obtenido, (Todo el texto leido) Return taskLoad.Result ' End Function
Ejemplo TRES
''' <summary> ''' VERSION ALTERNATIVA Ejecutar la tarea ''' OBSERVA [Await] Y [Async] ''' </summary> Private Shared Async Function ExecuteLoadFileAsyncDos( ByVal paramNombreFicheroFileInfo As System.IO.FileInfo, ByVal paramCodificacion As System.Text.Encoding) As Task(Of String) ' '--------------------------- ' Control de datos de entrada ' /Eof Control de datos de entrada '-------------------------------------------- ' '-------------------------------------------- Dim AuxTextoLeido As String = String.Empty '------------------------------------------ ' lee del disco, el contenido del fichero Using fs As New System.IO.FileStream(paramNombreFicheroFileInfo.FullName, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Read) ' Using sr As New System.IO.StreamReader(fs, paramCodificacion, True) AuxTextoLeido = Await sr.ReadToEndAsync() End Using End Using '/ Eof Proceso de lectura '--------------------- ' ' devolver el valor de texto leido Return AuxTextoLeido ' End Function