-1
我有一个c#多线程应用程序,它启动一个外部exe文件。在我的启动代码中,此启动线程正在调用两次,有时外部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;
}
}
}
}
}
这个时间延迟代码是否正常工作。或者我做错了什么。
我不明白这个问题。你能更清楚什么是错的? –