C#:自动重启程序

时间:2017-09-15 11:43:58

标签: c#

我目前正在开发一款小游戏服务器,而且它正在使用"模拟器"。有时它会崩溃,用户将不得不等到我下班回来,所以我想问一下是否有人知道,是否有办法自动重启.exe(其中有3个)如果它崩溃,那么如果程序说" ...停止工作"。

有人帮助我吗?

4 个答案:

答案 0 :(得分:0)

您可以编写一个简单的批处理文件,它将检查exe的主要功能(退出代码)的返回值。

或者只是编写一个简单的程序,如果它没有运行,则使用Process.Start启动它 - >枚举并检查Process.GetProcesses()

如果'服务器'您也可以创建服务。本身不提供编程的。

有很多选择......

答案 1 :(得分:0)

站在沉没的船上,很难从沉没的船上救出自己......最好的选择是第二个过程,某种看门狗检查应用程序是否仍然存在并且如果没有自动启动它。

您可以通过调用

来枚举正在运行的进程
LIKE

答案 2 :(得分:0)

订阅Process.Exited事件,以便在退出时重新启动:

var proc = Process.GetProcessesByName("my-server").Single();
proc.EnableRaisingEvents = true;

proc.Exited += (a, e) =>
{
    proc = Process.Start(...);  // Restart the process
};

答案 3 :(得分:0)

有多种方法可以做到这一点 请记住,您事先检查了您的检查条件 例如

If(stopped working){
Application.Restart();
 }

另一种方式是

If(stopped working){
Process.Start(Application.ExecutablePath); 
}

另一种方式是

override func viewDidLoad() {
    super.viewDidLoad()
    self.carousel.dataSource = self
    self.carousel.delegate = self

    carousel.reloadData()

    // Triggers layOutItemView and thus will render all images.
    self.carousel.type = iCarouselType.coverFlow

}