Notice
Recent Posts
Recent Comments
관리 메뉴

안까먹을라고 쓰는 블로그

[C#] 프로그램 재시작 소스 본문

카테고리 없음

[C#] 프로그램 재시작 소스

YawnsDuzin 2021. 1. 13. 11:14

 

반응형

네트워크 문제인지,, PLC 문제인지,, 정상통신이 되다가 PLC와의 통신이 안되는 문제가 있음..

 

프로그램 재시작 체크

PLC와 통신을 해서 해당 어드레스를 읽으면,, Count를 계속 상승시키는데,, 이게 설정한 시간동안 같으면

프로그램을 재시작하도록 처리

// PLCReadCount가 계속 같으면 프로그램 리스타트
if (Convert.ToInt32(lblCnt.Text) == GV.PLCBeforeCnt)
{
	// 2020.10.14 Debug
	label5.Text = GV.PLCBeforeCnt.ToString();

	// 5분동안 같으면 프로그램 재시작
	// 2020.10.14 Debug
	// if (GV.PLCBeforeCnt > 300) Program_Restart();
	// 2020.10.19 dz 
	// if (GV.PLCBeforeCnt > 30) Program_Restart();
	if (GV.PLCBeforeCnt > GV.PLCFailLimitSecond) Program_Restart();

	GV.PLCFailCnt += 1;
}
else GV.PLCFailCnt = 0;

 

프로그램 재시작 함수
private void Program_Restart()
{
	try
	{
		GV.Fnc.WriteLog("RestartLog", "[Program_Restart]");

		Application.Exit();
		System.Threading.Thread.Sleep(1000);

		// Case 1
		//Application.Restart();
		// Case 2
		System.Diagnostics.Process.Start(Application.ExecutablePath);
	}
	catch (Exception Ex)
	{
		GV.Fnc.WriteLog("ExLog", "[Program_Restart] - Ex : " + Ex.ToString());
	}
}

 

반응형
Comments