Process Class: seltsames Verhalten von p_Exited Event



  • Hallo,

    wenn ich einen Prozess starte, z. B. mit

    p = new Process();            
    p.Exited += new EventHandler(p_Exited);
    p.StartInfo.FileName = "c:\\test.exe"; 
    p.Start();
    

    dann löst das p_Exited Event beim schließen nicht aus. Aber sobald ich p.HasExited auslese, wird es sofort ausgelöst, falls der Prozess beendet worden ist; läuft er noch, passiert beim auslesen nichts und auch beim schließen erstmal nichts.

    MSDN zur Process-Class durchgelesen, werde absolut nicht schlau aus diesem Verhalten...

    Viele Grüße,
    Patrick



  • Das Exited-Ereignis gibt an, dass der zugeordnete Prozess beendet wurde. Dies bedeutet, dass der Prozess entweder abgebrochen oder erfolgreich beendet wurde. Dieses Ereignis kann nur auftreten, wenn der Wert der EnableRaisingEvents-Eigenschaft true ist.

    // Start a process to print a file and raise an event when done.
                myProcess.StartInfo.FileName = fileName;
                myProcess.StartInfo.Verb = "Print";
                myProcess.StartInfo.CreateNoWindow = true;
                myProcess.EnableRaisingEvents = true;
                myProcess.Exited += new EventHandler(myProcess_Exited);
                myProcess.Start();
    

    Generell funktioniert das System, verwende es. Sollte es dennoch Probleme geben, mach mal ein Minimalbeispiel.



  • Ok gebe zu, habe die MSDN dazu doch nur diagonal gelesen, vielen Dank Dir, es funktioniert 🙂


Anmelden zum Antworten