Syncronizar StreamWriter

14/09/2004 - 18:05 por dohko | Informe spam
Pues eso

Como puedo syncronizar cuando estoy escribiendo en un archivo de texto, por
ejemplo :

Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button7.Click
Dim t As Thread

t = New Thread(AddressOf Me.GrabaEnArchivo)
t.IsBackground = True
t.Start()

End Sub

Private Sub GrabaEnArchivo()
Dim Archivo As StreamWriter
Dim strBuffer As String

strBuffer = "Hola Mundo!!!"

Archivo = New StreamWriter("C:\Prueba.Log", True)

MessageBox.Show("Wep!!!") // para detener y producir error

Archivo.WriteLine(strBuffer)
Archivo.Flush()
Archivo.Close()

End Sub

Si lanzo mas de una tarea se va a producir el error cuando detengo la tarea
anterior en el MessageBox porque
el archivo esta abierto por el hilo anterior , como puedo syncronizar ???

Error : The process cannot access the file "C:\Prueba.Log" because it is
being used by another process.
 

Leer las respuestas

#1 dohko
14/09/2004 - 20:10 | Informe spam
Ya quedo de todas formas gracias...

usando la clase DefaultTraceListener que era lo que ocupaba


"dohko" wrote in message
news:
Pues eso

Como puedo syncronizar cuando estoy escribiendo en un archivo de texto,


por
ejemplo :

Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button7.Click
Dim t As Thread

t = New Thread(AddressOf Me.GrabaEnArchivo)
t.IsBackground = True
t.Start()

End Sub

Private Sub GrabaEnArchivo()
Dim Archivo As StreamWriter
Dim strBuffer As String

strBuffer = "Hola Mundo!!!"

Archivo = New StreamWriter("C:\Prueba.Log", True)

MessageBox.Show("Wep!!!") // para detener y producir error

Archivo.WriteLine(strBuffer)
Archivo.Flush()
Archivo.Close()

End Sub

Si lanzo mas de una tarea se va a producir el error cuando detengo la


tarea
anterior en el MessageBox porque
el archivo esta abierto por el hilo anterior , como puedo syncronizar ???

Error : The process cannot access the file "C:\Prueba.Log" because it is
being used by another process.


Preguntas similares