我有以下代码,WaitForExit方法不等待.它只是运行命令并转到下一个语句.该命令用于取消对应用程序的取消,而parms用于卸载命令.卸载运行正常但我需要卸载才能完成继续...它没有阻塞.
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = commandName;
startInfo.Arguments = parms;
Process process = Process.Start(startInfo);
process.WaitForExit();
Run Code Online (Sandbox Code Playgroud)
我强烈怀疑安德烈的评论是正确的-你开始的过程中退出,但已经开始了新的过程本身.
找到它的简单方法是process.Id在调用之前打印出来WaitForExit,然后尝试在任务管理器中找到该过程.我怀疑你会发现它不会存在.
您可能希望循环,在等待卸载完成的另一个指示符(例如正在删除的特定文件或注册表项)时暂时休眠.不理想,但它可能是你得到的最好的.