首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Process.Start()之后,Process.WaitForExit(n)不会立即等待

在Process.Start()之后,Process.WaitForExit(n)不会立即等待的原因是因为Process.Start()方法会启动一个新的进程,并且在后台运行。而Process.WaitForExit(n)方法是用来等待当前进程的退出,参数n表示等待的时间(以毫秒为单位)。如果在指定的时间内进程没有退出,Process.WaitForExit(n)方法会返回false,否则返回true。

在调用Process.Start()方法后,新的进程会在后台运行,而主进程会继续执行后面的代码。因此,在调用Process.WaitForExit(n)方法时,如果新的进程还没有退出,主进程会继续执行后面的代码,而不会立即等待新的进程退出。

如果希望在调用Process.Start()之后立即等待新的进程退出,可以使用Process.WaitForExit()方法而不带参数。这样,主进程会一直等待新的进程退出后才继续执行后面的代码。

以下是Process.WaitForExit()方法的使用示例:

代码语言:txt
复制
Process process = Process.Start("your_program.exe");
process.WaitForExit();
// 在这里可以继续执行后续代码

在这个例子中,调用Process.WaitForExit()方法时没有传入参数,表示主进程会一直等待新的进程退出后才继续执行后续代码。

关于Process类和相关方法的更多信息,可以参考腾讯云的文档:Process类 - .NET Core

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

WPF桌面端开发-音视频录制(使用ffmpeg.exe实现)

前言本文只考虑Windows下使用FFmpeg进行桌面、麦克风、扬声器同时录制的实现方式,Mac下会有些许差异。之前的FFmpeg有很多问题,现在随着版本的更新基本上都可以解决了,可以使用在项目中。...录制桌面使用GDI方式的时候如果系统缩放不是100%,多屏录制的时候录制不全。这些问题我们一一解决:前两个问题是无法解决的。...编译好的下载地址是:http://sourceforge.net/projects/screencapturer/files/安装完了之后,命令行执行: ffmpeg -list_devices true...ProcessStartInfo { FileName = "regsvr32.exe", Arguments = "/s " + dllPath }; ​ //启动新进程并等待执行完毕...判断FFmpeg是否安装这种方式不推荐使用,添加环境变量不能立即生效 /// /// 判断FFmpeg是否安装并添加环境变量 /// ///

63420

使用C#简单制作一个看门狗程序

摘要 在有些特殊项目中,软件可能是无人值守的,如果程序莫名其妙挂了或者进程被干掉了等等,这时开发一个看门狗程序是非常有必要的,它就像一只打不死的小强,只要程序非正常退出,它就能立即再次将被看护的程序启动起来...FileName = filePath, UseShellExecute = true }; Process.Start...} else { process.Kill(); process.WaitForExit...简单实现个日志记录器(使用第三方库也行,建议看护程序最好不要有任何依赖),也可直接使用我下面这个,很简单,无任何依赖 public class Log { //读写锁,当资源处于写入模式时,其他线程写入需要等待本次写入结束之后才能继续写入...Arguments = Process.GetCurrentProcess().MainModule.FileName //被看护程序的完整路径 }; Process.Start

86020
  • dotnet 启动进程传入不存在的文件夹作为工作目录行为变更

    (processStartInfo); 运行将会在 Process.Start 方法上抛出 System.ComponentModel.Win32Exception 说 目录名称无效 如果是英文环境下...(processStartInfo); process.WaitForExit(); 我使用 .NET 6 和 .NET Framework 4.5 进行分别的测试,测试如下:... .NET Core 下,设置 UseShellExecute=false 的值,运行结果是:成功,新进程工作路径等于 I:\ 路径 .NET Core 下,设置 UseShellExecute=...true 的值,运行结果是:成功,新进程工作路径等于 C:\Windows 路径 .NET Framework 下,设置 UseShellExecute=false 的值,运行结果是:运行 Process.Start...github 的源 git remote remove origin git remote add origin https://github.com/lindexi/lindexi_gd.git 获取代码之后

    88410

    C++ Qt开发:QProcess进程管理模块

    Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用QProcess...当你使用Qt进行跨平台应用程序开发时,经常需要与外部进程进行交互,这时就可以利用Qt的QProcess模块。...startDetached(const QString &program, const QStringList &arguments)启动一个新的进程,但不会等待进程退出,也不会将输出传递给调用进程。...startDetached(const QString &program) 启动一个新的进程,但不会等待进程退出,也不会将输出传递给调用进程。...QByteArray QProcess::readAllStandardOutput()这个函数没有参数,它会立即返回当前可用的标准输出数据,并将输出数据作为字节数组返回。

    40610

    实战 | 记一次文件上传多重bypass

    Part.1 紧接上文 使用没修复的账户密码登录,主界面如下 某查询界面,随手一加单引号,报错,两个单引号闭合无报错信息,sql注入无疑。...Part.3 getshell 之后摸索进入另一个子站点之后,发现居然可以更改文件上传的后缀。 于是更改一波后开始找上传点。 自然而然的找到了内容管理,添加内容图片处,开始上传。...之后,脑海里突然划过aspx,.net的站点应该是支持cshtml的马的,于是说干就干。 文章如下。...output.AppendLine(args.Data); process.ErrorDataReceived += (sender, args) => output.AppendLine(args.Data); process.Start...(); process.BeginOutputReadLine(); process.BeginErrorReadLine(); process.WaitForExit(); return output.ToString

    35810

    Java开发者的Python快速进修指南:网络编程及并发编程

    原因是,当调用process.start()后,Python会重新执行当前文件,也就是说如果你将if __name__ == '__main__':这句话写在非主函数中,create_server()它将会被再次调用...这张图显示的是再次被调用是的名字: 第二:Python官网中指出,通过调用server_socket.listen(1)可以启动一个服务器,用于接受连接并将未接受的客户端连接放入等待队列中。...需要注意的是,等待队列的大小由listen(n)中的参数n+1指定,并不代表实际监听到的客户端连接。如果超过队列大小的连接尝试进入,服务器将直接报错。...我们主要关注了Java中使用socket和多线程结合实现服务器处理多个客户端连接的阻塞IO的方法,以及Python中使用multiprocessing模块创建多线程的方式。...其实了解了这些基本用法后,我们还能够自己实现许多其他功能,例如了解了线程之后,就知道会有队列的概念,然后可以尝试自己实现一个生产者消费者队列。

    10342

    一次综合渗透测试

    解压后发现是aspx的,我估摸着aspx我也不会呀,审计是不可能审计的了,瞄了一眼源码结构,倒是发现几个有意思的名字。 ? 看名字就明白是啥功能了,直接访问这个文件,发现可以越权访问。...args.Data); process.ErrorDataReceived += (sender, args) => output.AppendLine(args.Data);                 process.Start...(); process.BeginOutputReadLine(); process.BeginErrorReadLine(); process.WaitForExit(); return output.ToString...这里直接用echo写了一个小马去连接,然后传入一个大马方便操作。 ?...等晚上老师们都下班后登录上去。然后Chrome浏览器里发现存了两个密码。打开一看震惊了,妥妥的弱口令还是网站后台的管理员密码。之后翻了下sqlserver,发现密码就是简单的md5加密。

    85660

    如何使用 Python 多处理模块

    我们不会讨论多处理模块中的所有类和实用程序,而是将重点关注一个非常具体的类,即进程类。 什么是进程类? 本节中,我们将尝试更好地介绍进程是什么,以及如何在 Python 中识别、使用和管理进程。...I'm a child process 144079 关于上一个脚本的一个非常重要的注意事项:如果您不使用 process.join() 来等待子进程执行并完成,那么该点的任何其他后续代码将实际执行,...进程非常适合以隔离的方式执行函数,而不会干扰共享资源,这意味着我们知道从函数返回数据的正常且常用的方式。在这里,由于其隔离而不允许。...如果您跟踪代码,您将能够注意到 process.join() 调用之后仔细放置了一条 print 语句,以模拟父进程仍在运行,即使子进程中引发了未处理的异常之后也是如此。...克服这种情况的一种方法是子进程中实际处理异常,如下所示: #!

    18820
    领券