외부 exe 파일을 시작하는 C# 멀티 스레드 응용 프로그램이 있습니다. 내 발사 코드 에서이 발사 스레드는 두 번 외부 exe 파일의 두 인스턴스가 시작되고 몇 번 전화입니다. 발사 방법에 적용된 잠금 메커니즘을 없애기 위해 발사 시간 지연을 추가하십시오. while 루프에서 5 밀리 초의 시간 지연을주고 최상위 레벨에서 시간을 잘라내는 것과 같습니다. 그리고 프로세스가 발견되면 루프를 깰. 그리고 최상위 수준을 줄입니다. 그리고 최고 수준의 차단이 5 초에 도달하고 여전히 exe가 발견되지 않으면 루프를 깨뜨립니다. 다음은 제 코드입니다.while 루프의 시간 지연
int count = 1000;
lock (locker)
{
Process[] pname = Process.GetProcessesByName("MyApp");
if (pname.Length == 0)
{
----
process = new System.Diagnostics.Process();
process.StartInfo = psi;
process.Start();
while (true)
{
//find TG proceess
pname = Process.GetProcessesByName("MyApp");
//if found exit from loop
if (pname.Length >= 1)
{
Console.WriteLine("Found");
break;
}
else
{
//give 5 sec delay
System.Threading.Thread.Sleep(10);
count = count + 10;
if (count >=5000)
{
Console.WriteLine("Not Found");
break;
}
}
}
}
}
이 지연 시간 코드가 작동합니까? 아니면 뭔가 잘못하고있는 것입니다.
나는 그 질문을 이해할 수 없었다. 뭐가 잘못 됐는지 좀 더 명확히 해 주실 수 있겠습니까? –