[Infraestructura - Net 7.0 -] - StreamWriter.WriteAsync Método

Descripción general:

Pequeño estudio que muestra como usar el método WriteAsync(String) para escribir de forma asíncrona una cadena en una secuencia.


↑↑↑

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