- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下代码,但 WaitForExit 方法没有等待。它只是运行命令并继续执行下一条语句。该命令用于卸载应用程序,参数用于卸载命令。卸载运行正常,但我需要先完成卸载,然后才能继续...它不会阻塞。
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = commandName;
startInfo.Arguments = parms;
Process process = Process.Start(startInfo);
process.WaitForExit();
最佳答案
我强烈怀疑 Andrey 的评论是正确的 - 您正在启动的进程正在退出,但本身已经启动了一个新进程。
找到该进程的简单方法是在调用 WaitForExit
之前打印出 process.Id
,然后尝试在任务管理器中查找该进程。我怀疑你会发现它不在那里。
您可能想要循环,短暂休眠,同时等待卸载完成的另一个指示 - 例如删除特定文件或注册表项。并不理想,但它可能是您拥有的最好的。
关于c#-2.0 - Process.WaitForExit 不等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4972565/
我正在编写一个应用程序,其中有两个对外部程序的调用,RichCopy 和 7zip。这个想法是使用 RichCopy 移动文件,并在 RichCopy 完成后使用 7zip 存档和加密文件。我遇到的问
我正在调用 ffmpeg。有时调用失败并且 ffmpeg 不会退出它只会进入递归循环。我调用了 WaitForExit 方法。 在代码中,我进一步询问了 standardOutput 和 standa
我在我的应用程序中使用以下语句: System.Diagnostics.Process process = new System.Diagnostics.Process(); process.Star
所以我一直在与这个问题作斗争,并尝试了很多不同的方法来解决它,但都无法解决。 基本上,我的应用所做的就是调用 java 文件以在设备上加载应用。在加载时将其打印到富文本框,然后我想转到下一个文件。我遇
我正在尝试统一运行一个 exe 应用程序以执行某些功能,并且该 exe 文件将在统一运行时从我的麦克风获取输入,所以我必须等到它退出,而使用 waitforexit 可以很好地允许 exe 获取输入但
我正在使用 WMI to start a process on a remote machine .创建进程的调用立即返回,我还获得了远程机器上进程的 ID。 我想等待远程进程完成。一种选择是轮询远程
我下面的代码从while循环中被调用,因此它连续执行多次。有时但并非总是如此,我最终在p.WaitforExit()上遇到线程被中止的错误。有人对此有见识吗?我应该在p.WaitForExit之后调用
我有一个启动进程、等待退出然后返回退出代码的函数: function int login(string pathtofile) { //... Process process = ne
我已经创建了 Print spooler 应用程序来异步打印 pdf。 (应用程序使用veryPDF命令从网络打印机打印) 这是代码 var procStartInfo = new System
我正在将自定义操作添加到我的 VS2008 安装项目(MSI 安装程序)中。 我正在调用一个批处理文件来创建数据库,然后想删除这些文件。我有 WaitForExit() 但它不会等待。为什么?
下面是我启动该过程的代码,只放了演示链接。我希望这个过程在不打开浏览器的情况下在后台运行。第二行也抛出异常 Object reference not set to an instance of an
来自 MSDN 使用新创建进程的 stdoutput 的例子: // This is the code for the base process Process myProcess =
我的程序一直运行良好,但突然卡在 Process.WaitForExit();而不继续执行下一个命令。我已经多次运行该程序而没有出现错误。有谁知道我该如何调试这个或者有谁知道背后的问题是什么?会不会是
此代码在大量机器上按预期运行。然而在一台特定的机器上,调用 WaitForExit()似乎被忽略,实际上将进程标记为已退出。 static void Main(string[] args) {
我有一项服务有时会调用批处理文件。批处理文件需要 5-10 秒来执行: System.Diagnostics.Process proc = new System.Diagnostics.Process
我想等待一个进程完成,但是 Process.WaitForExit() 挂起了我的 GUI。是否有基于事件的方式,或者我是否需要生成一个线程来阻塞直到退出,然后自己委托(delegate)事件? 最佳
我正在尝试执行一个批处理脚本,该脚本在末尾包含一个我想确认的暂停语句: var psi = new ProcessStartInfo(path, arguments); psi.RedirectSta
我正在调用一个“有时”在 VB.NET 中运行的第三部分应用程序(它是一个自托管的 WCF)。但有时第 3 方应用程序会永远挂起,所以我给它添加了一个 90 秒的计时器。问题是,我怎么知道事情是否超时
我正在使用以下提供的解决方案:https://stackoverflow.com/a/19104345/2713516要异步运行 WaitForExit,但是,我想使用 Int32 参数重载 ( ht
我对 c# 和这个论坛总体上还很陌生,但就我而言,我还没有看到任何像我这样的问题可以解决我的问题。 我正在调用方法 Process.WaitForExit() 以等待安装文件完成安装。但是,该方法似乎
我是一名优秀的程序员,十分优秀!