我的代码中有一个if语句,其中包含一个shutdownProcess()
方法(它使用很多很多调用),在if语句SendKeys.Send
中单独使用时效果很好:
if (waitForRegressionTestToComplete.WaitOne(10*60*1000))
{
shutdownProcess();
}
正如我所说,这正是我想要的。工作正常,SendKeys.Send
进程关闭。但是,当我在 if 语句中添加其他项目时,代码输入shutdownProcess()
并“发送密钥”,但绝对没有结果。该方法中发送的前两个键是 ALT+TAB x2 以便在焦点丢失时重新获得焦点:
SendKeys.Send("%{TAB}");
SendKeys.Send("%{TAB}");
这是我添加新项目后的if语句,这会导致问题:
if (waitForRegressionTestToComplete.WaitOne(10*60*1000))
{
shutdownProcess();
bool processIsStillRunning = true;
while (processIsStillRunning)
{
Process[] processlist = Process.GetProcesses();
processIsStillRunning = false;
foreach (Process process in processlist)
{
if (process.MainWindowTitle.Contains("Process"))
{
processIsStillRunning = true;
}
}
}
该线程在“发送”所有密钥后似乎也冻结了,因为它正在等待进程退出 - 无济于事。在此先感谢您的帮助。我完全被难住了。