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