最近我对我的服务器exe有一个简单的自动重启器的想法。
基本上它只是
WerFault
的进程正在运行WerFault
wServer
是否正在运行,如果没有,它会启动它。 这一切都在一个延迟10秒的计时器内。
但是我非常确定有一种更有效的方法。我自己学习了C#(没有读过一本书,我所知道的都是通过自学+谷歌获得的)。
此外,我希望服务器全天候开放是因为它将在vps上运行。
注意:这是一个Windows窗体应用程序。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Diagnostics;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void timer1_Tick(object sender, EventArgs e)
{
Process[] prs = Process.GetProcesses();
foreach (Process pr in prs)
{
if (pr.ProcessName == "WerFault")
{
pr.Kill();
if (pr.ProcessName == "wServer")
{
pr.Kill();
Process.Start(@"C:\Users\Arturs\Dropbox\ROTMGServer-master\bin\Debug\wServer\wServer.exe");
}
return;
}
}
if (pr.ProcessName == "wServer")
{
return;
}
Process.Start(@"C:\Users\Arturs\Dropbox\ROTMGServer-master\bin\Debug\wServer\wServer.exe");
return;
}
private void button1_Click(object sender, EventArgs e)
{
timer1.Start();
}
private void timer2_Tick(object sender, EventArgs e)
{
}
}
}
}
答案 0 :(得分:0)
你写过:
if (pr.ProcessName == "WerFault")
{
pr.Kill();
{
if (pr.ProcessName == "wServer")
{
// ...
不可能有pr
个ProcessName
字符串"WerFault"
和字符串"wServer"
。< / p>
也许您想将第一个if
移到第一个之外。