Ich schreibe ein Stück C# -Code, das ein Installationsprogramm startet und darauf wartet, dass es zurückkehrt, bevor es mit anderen Dingen fortfährt.C# Erkennen von erzeugten Prozessen
Ich habe Probleme mit bestimmten Installern, die andere Prozesse mit dem ursprünglichen Prozess spawnen, bevor die Installation tatsächlich abgeschlossen ist. Gibt es einen Weg, auf den ich warten kann, bis alle Prozesse abgeschlossen sind?
hier Um zu klären, ist das Szenario, das ich Probleme mit, die ich:
- Einführung Installer1
- Installer1 laicht/startet ein weiteres Installationsprogramm (Installer2)
- Installer 1 kehrt
- Anwendung hat denkt installieren fertig, aber Installer2 läuft noch. Dies führt zu Problemen mit dem Workflow in der App.
Hier ist der Code, den ich im Moment bin mit:
// launch installer
Process process = windowsApplicationLauncher.LaunchApplication(_localFilePath);
// wait for process to return
do
{
if (!process.HasExited)
{
}
}
while (!process.WaitForExit(1000));
if (process.ExitCode == 0)
{
_fileService.MoveFile(_localFilePath, _postInstallFilePath);
_notification.SetComplete(false);
return true;
}
return false;
Besitzen Sie die erzeugten Prozesse? Z.B. Können Sie Installer2 ändern, wenn dies die Erkennung der Vervollständigung erleichtern würde? Oder wird Installer2 von jemand anderem zur Verfügung gestellt, oder Sie wissen nicht einmal, welche zusätzlichen Prozesse generiert werden können und müssen mit freigewordenen Prozessen umgehen? – itowlson
Wir besitzen das betreffende Installationsprogramm. Wir möchten jedoch auch beliebige frei gewordene Prozesse handhaben können. – tjjjohnson