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);
}
Wenn ich diesen Code ausführen und starten Sie die erste exe die zweite startet nicht (es soll). aber wenn ich if (processArray != null && programIsRunning == false)
mache, läuft die 2. exe Datei auch wenn die erste nicht läuft.Wie führe ich eine EXE-Datei abhängig von einer anderen exe-Datei ausgeführt
es ist viel besser zu Timer-Insead von while (true) zu verwenden, andernfalls Programm möglicherweise überprüfen, ob Bedingung sehr häufig alle verfügbare Ressource für diese Aufgabe verwenden. Und warum überprüfen Sie processArray == null, eindeutig 'processArray = Process.GetProcessesByName (Path.GetFileNameWithoutExtension (process));' wird nur erstellt werden und würde nicht in der nächsten während des Zyklus aktualisiert werden. – Vladimir
Process.GetProcessesByName gibt NULL nicht zurück, wenn der Prozess nicht ausgeführt wird, sondern ein leeres Array zurückgibt. – sgmoore
Verwenden Sie den Debugger für Starter, um den Wert von processArray zu überprüfen, haben Sie zumindest mit dem Debugger den Code durchgegangen ..? – MethodMan