Приложение автоматического перезапуска VB.net

У меня есть код, который запустит процесс, и при повторном нажатии он убьет текущий процесс и запустит новый (перезапустит).

 Private Games As New Dictionary(Of String, Process)

Private Sub GS1_Click(sender As Object, e As EventArgs) Handles GS1.Click
    Dim gameservercfg As String = GameServer1.Text
    Dim Key As String = gameservercfg.ToUpper

    If Games.ContainsKey(Key) Then
        If Not Games(Key).HasExited Then
            Games(Key).Kill()
        End If
        Games.Remove(Key)
    End If

    Dim psi As New ProcessStartInfo
    psi.FileName = System.IO.Path.Combine(Directory.GetCurrentDirectory(), "GameServer.exe")
    psi.WorkingDirectory = System.IO.Path.GetDirectoryName(psi.FileName)
    psi.Arguments = gameservercfg
    Games.Add(Key, System.Diagnostics.Process.Start(psi))
End Sub

Что я хочу сделать, так это как сделать его автоматическим перезапуском, когда этот gameserver.exe падает сам по себе?


person Foxseiz    schedule 04.10.2015    source источник


Ответы (1)


Основная идея, которая может работать в таком сценарии, заключается в том, что вы сохраняете любую конфигурацию в файл на диск. Затем перезапустите приложение, используя

System.Windows.Forms.Application.Restart()

И в событии запуска приложения загрузите любые данные из файла на диске, где вы сохранили свою конфигурацию, если таковые имеются. Для более глубокого понимания темы вы также можете прочитать эти сообщения SO
автоматический перезапуск, а затем продолжение-the-sub-in-vb-net
application-restart-puzzling-behaviour-in-vb-net

Кроме того, вы можете (1) сохранить свою конфигурацию, (2) запустить новый независимый экземпляр того же приложения и (3) затем завершить текущий экземпляр.
Не забудьте загрузить сохраненные конфигурации/конфигурации по умолчанию из сохраненного файла в приложении. запуск/перезапуск, если требуется.

person haraman    schedule 04.10.2015