【发布时间】:2011-01-14 15:12:26
【问题描述】:
我正在编写一段 c# 代码来启动安装程序并等待它返回,然后再继续执行其他操作。
我在安装某些安装程序时遇到问题,这些安装程序会在安装实际完成之前生成其他进程,而原始进程会返回。 有什么方法可以等到所有流程都完成吗?
为了澄清我遇到问题的场景:
- 启动安装程序1
- Installer1 生成/启动另一个安装程序 (Installer2)
- 安装程序 1 返回
- 应用程序认为安装已完成,但 Installer2 仍在运行。这会导致应用中的工作流程出现问题。
这是我目前正在使用的代码:
// 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;
【问题讨论】:
-
您拥有衍生的进程吗?例如。如果这样可以让您更容易检测到完成,您可以修改 Installer2 吗?或者 Installer2 是由其他人提供的,或者您甚至不知道可能会产生哪些额外的进程并且需要处理任意产生的进程?
-
我们确实拥有相关的特定安装程序。但是,我们也希望能够处理任意生成的进程。
标签: c# installation process spawn