2012-06-19 49 views
5

Mögliche Duplizieren:
How to know if Process.Start() is successful?C# -, wie Sie überprüfen, ob ein Prozess erfolgreich gestartet wurde

Ich habe ein ähnliches Verfahren wie einen Watchdog (lass es WD nennen) in meinem Programm, das ist ein weiterer laufender Prozess (nennen wir es A). Ich beginne WD Prozess bei einem bestimmten Ereignis, sagen wir, eine Taste gedrückt wird, und ich möchte einen anderen Prozess mit diesem Prozess starten, nennen wir es B.

Die Sache ist, dass ich den initialen Prozess A herunterfahren will, nachdem ich weiß, dass Prozess B erfolgreich gestartet wurde. Wie kann ich das überprüfen?

Ich starte Prozess WD und B mit Process.Start(argList) und ProcessInfo(argList) Syntax.

Jeder Prozess ist eine einfache C# -Konsolenanwendung.

+0

haben Sie tryed Versuch mit {} catch {}? –

+0

Die Sache ist, dass die Try Catch-Sektion hilft Ihnen beim Öffnen von Ausnahmen. Ich mache das schon, aber es gibt mir keine Informationen über die Wartezeit für die Eröffnung dieses Prozesses. – Simon

Antwort

4

Process.Start gibt einen boolean (wahr wenn Prozess korrekt gestartet) prüfen diese MSDN link für Process.Start() -Methode.

sollte Ihr Code so etwas wie:

 Process B= new Process(); 

     try 
     { 
      B.StartInfo.UseShellExecute = false; 
      B.StartInfo.FileName = "C:\\B.exe"; 
      B.StartInfo.CreateNoWindow = true; 
      if (B.Start()) 
      { 
       // Kill process A 
      } 
      else 
      { 
       // Handle incorrect start of process B and do NOT stop A 
      } 

     } 
     catch (Exception e) 
     { 
      // Handle exception and do NOT stop A 
     } 
0

Process.Start

kehrt: wahr wenn eine Prozessressource gestartet wird; false wenn keine neue Prozessressource gestartet wird (z. B. wenn ein vorhandener Prozess wiederverwendet wird).

Ich würde annehmen, Sie sollten nur den Rückgabewert von Process.Start überprüfen. Wenn es true ist, können Sie den aktuellen Prozess schließen.

Je nachdem, welche Überlast Sie verwenden, kann der Rückgabewert null sein, wenn dies ebenfalls fehlschlägt.

Verwandte Themen