0
내 컴퓨터에서 실행되는 콘솔 응용 프로그램이 있습니다. 응용 프로그램이 예외를 throw하면 응용 프로그램을 다시 시작하려고합니다. 이것을 어떻게 할 수 있습니까?관리 실행 프로세스
당신은 내가 좋아하는 기능은 쓸 수 있습니다 예를 들어, 프로세스가 살아있는 경우 매 n 초를 확인 타이머를 인스턴스화 할 수내 컴퓨터에서 실행되는 콘솔 응용 프로그램이 있습니다. 응용 프로그램이 예외를 throw하면 응용 프로그램을 다시 시작하려고합니다. 이것을 어떻게 할 수 있습니까?관리 실행 프로세스
당신은 내가 좋아하는 기능은 쓸 수 있습니다 예를 들어, 프로세스가 살아있는 경우 매 n 초를 확인 타이머를 인스턴스화 할 수하여 프로세스가 살아 있는지 확인하려면 다음 타이머의
public static bool ProcessExist(string processname)
{
Process[] aProc = Process.GetProcessesByName(processname);
return (aProc.Length > 0);
}
모든 틱 당신은 프로세스가 살아 있는지 아닌지를 확인할 수 있습니다. 그렇지 않으면 다시 시작할 수 있습니다.
또 다른 방법이 될 GET에 대한 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
더 많은 세부 사항을 제공하십시오 _ "때 응용 프로그램이 예외를 throw하고 응용 프로그램을 다시 시작하려고합니다. " 당신은 예외를 잡으려고합니다. 그리고 아니, 당신은'main()'에서 그렇게하지 않습니다. – CodeCaster