0
我有一個在我的電腦上運行的控制檯應用程序。當應用程序引發異常時,我想重新啓動應用程序。我怎樣才能做到這一點?管理運行過程
我有一個在我的電腦上運行的控制檯應用程序。當應用程序引發異常時,我想重新啓動應用程序。我怎樣才能做到這一點?管理運行過程
您可以實例化檢查每n秒,如果這個過程是活的計時器,例如,你可以寫我的功能就像下面的驗證過程是否還活着:
public static bool ProcessExist(string processname)
{
Process[] aProc = Process.GetProcessesByName(processname);
return (aProc.Length > 0);
}
每一個計時器的滴答你可以檢查過程是否存在,如果不存在,你可以重新啓動它。
另一種方法可以是使用ManagementEventWatcher爲讓每一個時間觸發的事件,你的計算機上的進程停止,因此,例如:
ManagementEventWatcher stopWatchProcess = new ManagementEventWatcher(new WqlEventQuery("SELECT * FROM Win32_ProcessStopTrace"));
stopWatchProcess.EventArrived += new EventArrivedEventHandler(stopWatchProcess_EventArrived);
stopWatchProcess.Start();
private void stopWatchProcess_EventArrived(object sender, EventArrivedEventArgs e) {
string processName = (string)e.NewEvent.Properties["ProcessName"].Value;
if(processName == "yourprocess.exe") {
//Do Something
}
}
請重新表述這一點,並提供更多的細節... – Tudor
_」當應用程序拋出異常,我想重新啓動應用程序。「_不,你不知道。你想要捕捉異常。不,你不會在'main()'中這樣做。 – CodeCaster