Hallo,
Ich habe ein Problem mit dem BackgroundWorker. Wenn ich den ersten Text ins Logfile schreibe, wird zwar das schreiben des Logfles ordentlich durchgeführt, aber das Ereignis RunWorkerCompleted wird nicht ausgelöst . Außerdem ist Logfile_BW.IsBusy immer noch gesetzt. In das Logfile wird von verschiedenen Threads geschrieben. Hat jemend eine Idee was ich falsch mache oder eine Idee wie ich teilweise schnell aufeinander folgene Einträge in ein Logfile schreiben kann. Ich habe den Code mal vereinfacht.
Danke für Eure Ideen.
Mike
Ich habe ein Problem mit dem BackgroundWorker. Wenn ich den ersten Text ins Logfile schreibe, wird zwar das schreiben des Logfles ordentlich durchgeführt, aber das Ereignis RunWorkerCompleted wird nicht ausgelöst . Außerdem ist Logfile_BW.IsBusy immer noch gesetzt. In das Logfile wird von verschiedenen Threads geschrieben. Hat jemend eine Idee was ich falsch mache oder eine Idee wie ich teilweise schnell aufeinander folgene Einträge in ein Logfile schreiben kann. Ich habe den Code mal vereinfacht.
Code:
Private WithEvents Logfile_BW As New BackgroundWorker
Dim Logfile_Buffer As String
Sub Logfile(ByVal Text As String)
If Not Logfile_BW.IsBusy Then
Logfile_BW.RunWorkerAsync(Text)
Else
'Text in Logfile_Buffer
End If
End Sub
Private Sub Logfile_BW_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles Logfile_BW.DoWork
'Schreibe Text ins Logfile
End Sub
Private Sub Logfile_BW_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles Logfile_BW.RunWorkerCompleted
If Not IsNothing(Logfile_Buffer) Then
Dim Text As String = Logfile_Buffer
Logfile_BW.RunWorkerAsync(Text)
Logfile_Buffer = Nothing
End If
End Sub
Danke für Eure Ideen.
Mike