Hola, tengo un archivo "server.log" que no es más que un archivo de texto plano en el que un servidor CraftBukkit va escribiendo continuamente el log del servidor.
La idea es mostrar en tiempo real el contenido de ese archivo en un textbox, y esta es mi primera prueba, usando un Timer a 100ms.
Código vb:
Ver originalPrivate Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
Dim logFileStream As New FileStream(Application.StartupPath & "\" & ServerNameValue & "\" & "server.log", FileMode.Open, FileAccess.Read, FileShare.ReadWrite)
Dim logFileReader As New StreamReader(logFileStream)
While Not logFileReader.EndOfStream
Dim line As String = logFileReader.ReadLine()
For Each line2 In line
If Not TextBox1.Text.Contains(line) Then
TextBox1.Text = TextBox1.Text & line & vbNewLine
End If
Next
End While
' Clean up
logFileReader.Close()
logFileStream.Close()
End Sub
Funciona, pero el programa se ralentiza lo que no está escrito, hasta el punto de que sencillamente no me puedo permitir usar esto.
Desde luego la clave no es usar un timer que esté leyéndolo todo continuamente y escribiéndolo todo en el textbox una y otra vez.
¿Alguien sabe otra forma mejor de hacerlo?