私のコードには、if ステートメントで単独で使用すると完全に正常に動作するメソッド(shutdownProcess()
非常に多くの呼び出しを使用する) を含むifステートメントがあります。SendKeys.Send
if (waitForRegressionTestToComplete.WaitOne(10*60*1000))
{
shutdownProcess();
}
私が言ったように、これはまさに私が望むように機能します。正常SendKeys.Send
に動作し、プロセスがシャットダウンします。ただし、他の項目を if ステートメントに追加すると、コードが入力さshutdownProcess()
れて「キーが送信されます」が、結果はまったくありません。メソッドで送信される最初の 2 つのキーは、失われた場合にフォーカスを取り戻すための 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;
}
}
}
スレッドは、プロセスが終了するのを待っているため、すべてのキーを「送信」した後もフリーズしているように見えますが、無駄です。よろしくお願いします。私は完全に困惑しています。