static Process[] processArray = new Process[1];
static void Main(string[] args)
{
bool programIsRunning = false;
string process = "file location file name .exe";
processArray = Process.GetProcessesByName(Path.GetFileNameWithoutExtension(process));
Console.WriteLine(processArray);
do
{
if (processArray == null && programIsRunning == false)
{
Process.Start("file location file name .exe");
programIsRunning = true;
}
} while (true);
}
當我運行這個代碼並啓動第一個EXE第二個不開始運行(它應該)。但是如果我做if (processArray != null && programIsRunning == false)
即使第一個exe文件沒有運行,第二個exe文件也會運行。如何運行一個EXE文件依賴於另一個EXE文件運行
它更好地使用timer insead while(true)否則程序可能會檢查條件是否非常頻繁地使用該任務的所有可用資源。爲什麼你檢查processArray == null,顯然'processArray = Process.GetProcessesByName(Path.GetFileNameWithoutExtension(process));'只會被創建,並且在下一個while循環中不會被更新。 – Vladimir
如果進程沒有運行,Process.GetProcessesByName不會返回null,而是返回一個空數組。 – sgmoore
使用調試器爲初學者檢查processArray的值你是否至少使用調試器通過代碼?..? – MethodMan