-1
我正在創建一個應用程序,該應用程序應該在檢測到它已關閉時自動重新啓動程序。我創建了兩個按鈕,一個用於激活它,另一個用於隱藏窗口。在下面的代碼中,Exec()中的do-while循環執行,但(pname.Lenght == 0)總是返回false。C#:檢查進程是否正在運行問題
(toCheck和PathToFile是文本框)
public volatile bool isRunning;
public volatile bool isProcessRunning;
public volatile string ProcessToCheck;
public volatile string FilePath;
private void RunBtn_Click(object sender, RoutedEventArgs e)
{
if (isRunning)
{
isRunning = false;
}
else
{
isRunning = true;
ProcessToCheck = toCheck.Text;
FilePath = PathToFile.Text;
Thread newThread = new Thread(Exec);
newThread.Start();
}
}
void Launcher()
{
if (isProcessRunning == false)
{
Process.Start(FilePath);
}
}
public void Exec()
{
do
{
Process[] pname = Process.GetProcessesByName(ProcessToCheck);
if (pname.Length == 0)
{
isProcessRunning = false;
}
else
{
isProcessRunning = true;
}
Launcher();
} while (isRunning);
}
}
}
你需要告訴我們它什麼方式在問題*中不工作*。 – Richard
@Richard好的,我在問題中加入了 – cntrpl
您是否可以將代碼縮減爲更簡單的示例,最好是可以複製和粘貼以調查問題的示例。 你能否詳細說明「不起作用」。它怎麼不工作?你在期待什麼?會發生什麼呢?你做了什麼調查? – Will