加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C#检测产生的进程

发布时间:2020-12-15 07:53:47 所属栏目:百科 来源:网络整理
导读:我正在编写一段c#代码,用于启动安装程序并在继续使用其他内容之前等待它返回. 我遇到某些安装程序出现问题,这些安装程序在安装实际完成之前返回原始进程的其他进程.有什么方法可以等到所有流程完成后? 为了澄清这里我遇到麻烦的情况: 启动Installer1 Insta
我正在编写一段c#代码,用于启动安装程序并在继续使用其他内容之前等待它返回.

我遇到某些安装程序出现问题,这些安装程序在安装实际完成之前返回原始进程的其他进程.有什么方法可以等到所有流程完成后?

为了澄清这里我遇到麻烦的情况:

>启动Installer1
> 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;

解决方法

您是否考虑过使用WMI来解决这个问题?

您可以使用WMI侦听进程创建和删除事件.问题967668有一个很好的例子.

当您收到进程创建事件时,您可以发出WMI查询以确定该进程是否是您的根安装程序的子进程(或子进程的子进程),具有以下内容:

“SELECT * FROM Win32_Process WHERE ParentProcessId =”.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读