首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C# Process.Start -如何执行WaitForExit

C# Process.Start -如何执行WaitForExit
EN

Stack Overflow用户
提问于 2016-04-10 07:10:55
回答 2查看 7.8K关注 0票数 0

我有一个控制台应用程序,调用其他控制台应用程序。

我使用以下链接进行操作:https://robindotnet.wordpress.com/2010/03/21/how-to-pass-arguments-to-an-offline-clickonce-application/

我无法实例化进程并使用它,因为我得到了错误消息“指定的可执行文件不是此OS平台的有效应用程序”。

我可以使用进程的静态版本调用应用程序。

代码语言:javascript
运行
复制
Process.Start(shortcutPath, arguments);

代码语言:javascript
运行
复制
Process.Start(shortcutPath, arguments).WaitForExit();

然而,我无法将这个过程转到WaitForExit --一个应用程序被调用,过了一段时间,第一个应用程序完成之前,第二个应用程序被调用--这是一个问题,因为它依赖于第一个应用程序来完成。

关于如何获得进程的静态版本以等待退出(alt )的任何建议。如何实例化进程并能够调用clickonce部署的应用程序?)

EN

Stack Overflow用户

发布于 2016-04-10 08:06:40

Process.Start方法(String, 字符串)的返回值为System.Diagnostics.Process

根据https://msdn.microsoft.com/en-us/library/h6ak8zt5%28v=vs.110%29.aspx的说法是:

与进程资源关联的新进程,如果没有启动进程资源,则为null。请注意,与已在运行的同一进程实例一起启动的新进程将独立于其他进程。此外,Start可能返回一个非空进程,其HasExited属性已设置为true。在这种情况下,已启动的进程可能已经激活了自身的一个现有实例,然后退出。

因此,在调用process.HasExited之前,我将检查WaitForExit是否为真。

代码语言:javascript
运行
复制
var process = Process.Start(shortcutPath, arguments);
if (process != null && process.HasExited != true)
{
    process.WaitForExit();
}
else
{
    // Process is null or have exited
}
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36526954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档