Hallo,
ich hoffe ich bin hier richtig gelandet und jemand von euch kann mir evtl. weiterhelfen..
ich habe ein Programm, das Zyklisch die Verbindung zum Internet überprüfen soll.
-besteht keine Verbindung Soll das eine Unterprogramm abgearbeitet werden
-besteht eine Verbindung soll das andere Unterprogramm abgearbeitet werden
Dies habe ich versucht durch einen Timer zu realisieren, der eine Variable Hochzählt, die im Verlauf des Programmes wieder auf 0 gesetzt wird.
Das Programm läuft auch, nur leider Stürzt es nach einer gewissen Laufzeit ab... (zwischen 3 tagen bis 2 Wochen)
jetzt habe ich gesehen das In Visual Basic im Direkt Fenster folgende Meldung angezeigt wird:
Eine Ausnahme (erste Chance) des Typs "System.InvalidOperationException" ist in Microsoft.VisualBasic.dll aufgetreten.
dieser Meldung wird nur angezeigt, wenn keine Internetverbindung besteht und Die Variable "Zeit" nach 3 Sekunden wieder auf 0 zurück gesetzt wird.
wie kann ich diesen Fehler vermeiden?
Bin noch Programmieranfänger und habe bis jetzt hauptsächlich Microcontroller mit Bascom Programmiert
Gruß Hübi
ich hoffe ich bin hier richtig gelandet und jemand von euch kann mir evtl. weiterhelfen..
ich habe ein Programm, das Zyklisch die Verbindung zum Internet überprüfen soll.
-besteht keine Verbindung Soll das eine Unterprogramm abgearbeitet werden
-besteht eine Verbindung soll das andere Unterprogramm abgearbeitet werden
Dies habe ich versucht durch einen Timer zu realisieren, der eine Variable Hochzählt, die im Verlauf des Programmes wieder auf 0 gesetzt wird.
Das Programm läuft auch, nur leider Stürzt es nach einer gewissen Laufzeit ab... (zwischen 3 tagen bis 2 Wochen)
jetzt habe ich gesehen das In Visual Basic im Direkt Fenster folgende Meldung angezeigt wird:
Eine Ausnahme (erste Chance) des Typs "System.InvalidOperationException" ist in Microsoft.VisualBasic.dll aufgetreten.
dieser Meldung wird nur angezeigt, wenn keine Internetverbindung besteht und Die Variable "Zeit" nach 3 Sekunden wieder auf 0 zurück gesetzt wird.
wie kann ich diesen Fehler vermeiden?
Bin noch Programmieranfänger und habe bis jetzt hauptsächlich Microcontroller mit Bascom Programmiert
Gruß Hübi
VB.NET-Quellcode
- Public Class Form1
- Dim siteResponds As Boolean = False
- Dim zeit As Double
- Dim Zeit_Schnell As Double
- ' ********************************************************************************
- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _
- Handles MyBase.Load
- Timer1.Start() 'starte Timer1
- End Sub
- ' ********************************************************************************
- '
- Public Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
- zeit = zeit + 1 'Addiere bei ablauf des Timers Variable Zeit + 1
- Zeit_Schnell = Zeit_Schnell + 1 'Addiere bei ablauf des Timers Variable Zeit_schnell + 1
- '-------------------------------Takt für aktualisierung der Label----------------------------------
- If Zeit_Schnell > 0 Then 'Wenn Variable Zeit_schnell größer als 0 (100ms)ist, dann
- Label1.Text = CStr(zeit) 'schreibe variable "Zeit" in Label1
- Zeit_Schnell = 0 'Setze Variable Zeit_Schnell auf 0
- End If
- '-------------------------------Takt für abfrage der Verbindung-----------------
- If zeit > 29 Then 'Wenn Variable Zeit größer als 29 (3Sekunden) ist, dann
- Abfrage_Verbindung() 'gehe zu Unterprogramm
- End If
- '-------------------------------Takt für aufruf des Hauptprograms-----------------------------
- If zeit > 99 Then 'Wenn Variable Zeit größer als 99 (10 Sekunden) ist, dann
- zeit = 0 'Setze Variable Zeit auf 0
- HAUPT_UNTERPROGRAMM() 'Gehe zu Unterprogramm
- End If
- End Sub
- '----------------------------------------------Haupt Programm----------------------------------------
- Sub HAUPT_UNTERPROGRAMM()
- MessageBox.Show("Hauptprogram wird ausgeführt")
- If siteResponds = False Then
- Return
- End If
- End Sub
- '---------------------------------------------Unterprogram Abfrage Verbindung------------------------
- Sub Abfrage_Verbindung()
- Try 'Versuche:
- siteResponds = My.Computer.Network.Ping("www.google.com") 'Website Google.de anzupingen
- Catch 'wenn gefunden, dann
- siteResponds = False 'setze Variable siteResponds auf False
- Label2.Text = "es besteht keine Internet Verbindung" 'Zeige Text "es besteht keine Internet Verbindung"
- zeit = 0 ' HIER WIRD DER FEHLER VERURSACHT!!!!!!!!!!!!!!!!!
- End Try
- If siteResponds = True Then 'Wenn Variable siteResponds True ist, dann
- Label2.Text = "Verbindung mit Internet besteht" 'Zeige text "Verbindung mit Internet besteht"
- End If
- End Sub
- '-------------------------------------------------------------------------
- End Class