@hackerking Abort geht nicht (achso, Krusty hatte es schon geschrieben... )
@Krusty: Danke, dass war nun das erste mal, dass ich einen Background Worker verwendet habe. Zuerst hatte ich den Webrequest per Timer immer wieder ausgeführt, allerdings hat das Programm dann einige Sekunden (nach dem Intervall) nicht mehr reagiert.
Edit:
Folgendes gemacht. Timer beide entfernt, BGW wird nun über einen Button gestartet:
Code:
Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click
bgWorker.RunWorkerAsync()
notifyCheck.ShowBalloonTip(1000, "anwendungsname", "Verbindung zu: " & txtURL.Text & " wird hergestellt.", ToolTipIcon.Info)
End Sub
Die BGW Klasse sieht nun folgendermaßen aus:
Code:
Private Sub bgWorker_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bgWorker.DoWork
While True
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, "c2x postchecker", "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, "irgendein name")
End Try
Application.Exit()
Thread.Sleep(2000)
End While
End Sub
Allerdings scheint die Routine fehlerhaft abzulaufen, denn die Exception wird nun nach jedem mal Starten (des BGW) mit etwas Zeitverzögerung angezeigt.
Anscheinend liegt es am Webrequest, wobei ich an sich keinen Fehler feststellen kann.