c2x
05.05.2010, 15:15
Der BackgroundWorker ist ausgelastet und kann nicht mehrere Aufgaben gleichzeitig ausführen. Diese Fehlermeldung erscheint bei mir.
Code:
Imports System.Net
Imports System.IO
Imports System.Text.RegularExpressions
Public Class frmMain
'[...] Unwichtiger code ;)
'Timer wird durch Button gestartet
Private Sub tmrCheck_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrCheck.Tick
bgWorker.RunWorkerAsync() 'BG Worker wird gestartet
End Sub
Private Sub bgWorker_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bgWorker.DoWork
Try
Dim httpRequest As HttpWebRequest = HttpWebRequest.Create(txtURL.Text)
Dim httpResponse As HttpWebResponse = httpRequest.GetResponse()
Dim reader As StreamReader = New StreamReader(httpResponse.GetResponseStream)
Dim httpContent As String = reader.ReadToEnd
txtContent.Text = httpContent
If txtContent.Text.Contains(txtString.Text) = True Then
notifyCheck.ShowBalloonTip(10000, "Anwendung", "Neues Ergebnis bei: " & txtURL.Text, ToolTipIcon.Info)
txtString.Clear()
End If
Catch ex As Exception
MsgBox("Es ist ein Fehler während der Verbindung zu: " & txtURL.Text & " aufgetreten." & vbCrLf & _
"Überprüfen Sie Ihre Internetverbindung.", MsgBoxStyle.Information, "Anwendung")
End Try
Try
bgWorker.CancelAsync()
Catch ex As Exception
MsgBox("Der Hintergrundprozess konnte nicht geschlossen werden. Die Anwendung wird sich schließen.", MsgBoxStyle.Information, _
"Anwendung")
Application.Exit()
End Try
End Sub
End Class
Woran liegt der Fehler. Schließlich lasse ich nach jedem Timer Intervall den BG-Worker neu starten.
Code:
Imports System.Net
Imports System.IO
Imports System.Text.RegularExpressions
Public Class frmMain
'[...] Unwichtiger code ;)
'Timer wird durch Button gestartet
Private Sub tmrCheck_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrCheck.Tick
bgWorker.RunWorkerAsync() 'BG Worker wird gestartet
End Sub
Private Sub bgWorker_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bgWorker.DoWork
Try
Dim httpRequest As HttpWebRequest = HttpWebRequest.Create(txtURL.Text)
Dim httpResponse As HttpWebResponse = httpRequest.GetResponse()
Dim reader As StreamReader = New StreamReader(httpResponse.GetResponseStream)
Dim httpContent As String = reader.ReadToEnd
txtContent.Text = httpContent
If txtContent.Text.Contains(txtString.Text) = True Then
notifyCheck.ShowBalloonTip(10000, "Anwendung", "Neues Ergebnis bei: " & txtURL.Text, ToolTipIcon.Info)
txtString.Clear()
End If
Catch ex As Exception
MsgBox("Es ist ein Fehler während der Verbindung zu: " & txtURL.Text & " aufgetreten." & vbCrLf & _
"Überprüfen Sie Ihre Internetverbindung.", MsgBoxStyle.Information, "Anwendung")
End Try
Try
bgWorker.CancelAsync()
Catch ex As Exception
MsgBox("Der Hintergrundprozess konnte nicht geschlossen werden. Die Anwendung wird sich schließen.", MsgBoxStyle.Information, _
"Anwendung")
Application.Exit()
End Try
End Sub
End Class
Woran liegt der Fehler. Schließlich lasse ich nach jedem Timer Intervall den BG-Worker neu starten.