Ejemplo UNO
''' <summary> ''' Ejecutar la tarea de grabar un texto en disco ''' </summary> Public Overrides Sub ExecuteTrabajo() Dim taskSave As New System.Threading.Tasks.Task(Sub() ExecuteSaveFileAsync(NombreFicheroFileInfo, TextoQueSeGrabaEnDisco, Codificacion) End Sub) ' Arrancar la ejecución de la tarea. taskSave.Start() ' Esperar a que termine la tarea taskSave.Wait() 'Call ExecuteSaveFileAsync(NombreFicheroFileInfo, TextoQueSeGrabaEnDisco, Codificacion) End Sub
Private Shared Async Sub ExecuteSaveFileAsync( ByVal paramNombreFicheroFileInfo As System.IO.FileInfo, ByVal paramTextoQueSeGrabaEnDisco As String, ByVal paramCodificacion As System.Text.Encoding) '--------------------------- ' Control de datos de entrada ' /Eof Control de datos de entrada '-------------------------------------------- ' comprobar que existe el directorio, si no crearlo ' así se evitan errores tontos Dim localPath As String = paramNombreFicheroFileInfo.DirectoryName If System.IO.Directory.Exists(localPath) = False Then System.IO.Directory.CreateDirectory(localPath) End If ' Graba en disco, Using fs As New System.IO.FileStream( paramNombreFicheroFileInfo.FullName, System.IO.FileMode.Create) Using sr As New System.IO.StreamWriter(fs, paramCodificacion) Await sr.WriteAsync(paramTextoQueSeGrabaEnDisco) End Using End Using End Sub
Ejemplo DOS
''' <summary> ''' Ejecutar la tarea de grabar un texto en disco ''' </summary> Public Sub ExecuteTrabajoAsync( ByVal paramNombreFicheroFileInfo As System.IO.FileInfo, ByVal paramTextoQueSeGrabaEnDisco As String) Dim taskSave As System.Threading.Tasks.Task ' Observa las instrucciones [Async] y [Await] dode estan taskSave = New System.Threading.Tasks.Task(Async Sub() ' La operación de grabar un texto en un fichero del disco, Using fs As New System.IO.FileStream( paramNombreFicheroFileInfo.FullName, System.IO.FileMode.Create) Using sr As New System.IO.StreamWriter(fs) Await sr.WriteAsync(paramTextoQueSeGrabaEnDisco) End Using End Using End Sub) ' Arrancar la ejecución de la tarea. taskSave.Start() ' Esperar a que termine la tarea taskSave.Wait() End Sub