Hallo,
falls mein Hauptprogramm sich mal aufhängen sollte, habe ich ein Nebenprogramm laufen, was auf diesen Fehler reagieren soll.
Code Nebenprogramm:
Spoiler anzeigen
Nun startet dieses Nebenprogramm sporadisch ohne ersichtlichen Grund, dass Hauptprogramm neu.
Ist Responding für mein Vorhaben nicht geeignet oder mache ich im Code einen Fehler?
falls mein Hauptprogramm sich mal aufhängen sollte, habe ich ein Nebenprogramm laufen, was auf diesen Fehler reagieren soll.
Code Nebenprogramm:
VB.NET-Quellcode
- Option Strict On
- Option Explicit On
- Public Class Menue
- Private ProzHome As Process
- Private Sekunden As Integer
- Private SekSet As Integer
- Private Sub Menue_Load(sender As Object, e As EventArgs) Handles Me.Load
- Visible = False
- Opacity = 0
- Visible = True
- CenterToScreen()
- With Timer_Pruefung
- .Enabled = False
- .Interval = 5000
- End With
- With Timer_Aktion
- .Enabled = False
- .Interval = 1000
- End With
- SekSet = 120
- Sekunden = SekSet
- ProzHome = New Process
- Dim Programm() As Process = Process.GetProcessesByName("MBHome")
- If Not Programm.Count = 0 Then
- ProzHome = Programm(0)
- ProzHome.StartInfo.FileName = "C:\MBHome\Intern\Programm\MBHome.exe"
- Timer_Pruefung.Enabled = True
- End If
- End Sub
- Private Sub Timer_Pruefung_Tick(sender As Object, e As EventArgs) Handles Timer_Pruefung.Tick
- If Not ProzHome.Responding Then
- Aktion()
- End If
- End Sub
- Private Sub Aktion()
- Sekunden = SekSet
- Button_Neustart.Text = "Neustart in " & Sekunden.ToString & " Sekunden"
- Timer_Pruefung.Enabled = False
- Opacity = 1
- Timer_Aktion.Enabled = True
- End Sub
- Private Sub Timer_Aktion_Tick(sender As Object, e As EventArgs) Handles Timer_Aktion.Tick
- Sekunden -= 1
- Button_Neustart.Text = "Neustart in " & Sekunden.ToString & " Sekunden"
- If Sekunden = 1 Then
- Timer_Aktion.Enabled = False
- Neustart()
- End If
- End Sub
- Private Sub Neustart()
- Opacity = 0
- ProzHome.Kill()
- Threading.Thread.Sleep(3000)
- ProzHome.Start()
- Threading.Thread.Sleep(3000)
- ProzHome = New Process
- Dim Programm() As Process = Process.GetProcessesByName("MBHome")
- If Not Programm.Count = 0 Then
- ProzHome = Programm(0)
- ProzHome.StartInfo.FileName = "C:\MBHome\Intern\Programm\MBHome.exe"
- Timer_Pruefung.Enabled = True
- End If
- End Sub
- Private Sub Button_Neustart_Click(sender As Object, e As EventArgs) Handles Button_Neustart.Click
- Timer_Aktion.Enabled = False
- Neustart()
- End Sub
- Private Sub Button_Deaktivieren_Click(sender As Object, e As EventArgs) Handles Button_Deaktivieren.Click
- Timer_Aktion.Enabled = False
- Sekunden = SekSet
- Opacity = 0
- Timer_Pruefung.Enabled = True
- End Sub
- Private Sub Button_Beenden_Click(sender As Object, e As EventArgs) Handles Button_Beenden.Click
- Close()
- End Sub
- End Class
Nun startet dieses Nebenprogramm sporadisch ohne ersichtlichen Grund, dass Hauptprogramm neu.
Ist Responding für mein Vorhaben nicht geeignet oder mache ich im Code einen Fehler?
Gruß Markus