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