应用程序有bug崩溃重启的案例2

------解决思路----------------------
另外做一个服务或者程序定时监控系统进程。程序奔溃的话,都会在入口函数出现异常处理一下
winform可以有两个事件来捕获主线程异常和线程异常,Application.ThreadException和Application.SetUnhandledExceptionMode
你做一个保姆程序,主程序启动时通过ServiceController启动你的服务,窗体退出前停止你的服务。
服务的代码大致如下:

System.Timers.Timer timer = new System.Timers.Timer(500);
timer.Elapsed += Nurse;
timer.AutoReset = true;
timer.Start();
private void Nurse(object sender, System.Timers.ElapsedEventArgs e)
{ if (Process.GetProcessesByName("报错窗体进程名称").Where(s => s.MainWindowHandle != IntPtr.Zero).Count() > 0)
{
//杀死该进程
}
if (Process.GetProcessesByName("你的应用进程名称").Where(s => s.MainWindowHandle != IntPtr.Zero).Count() == 0)
{
//重启你的程序
} }
原文链接:http://www.myexception.cn/c-sharp/2029782.html
原文地址:https://www.cnblogs.com/1175429393wljblog/p/8084598.html