gpt4 book ai didi

c# - 如何将控制中断(或等效信号)发送到 .NET 中的控制台应用程序进程?

转载 作者:太空宇宙 更新时间:2023-11-03 16:14:30 26 4
gpt4 key购买 nike

假设我启动了一个进程来运行控制台应用程序,如 7z.exe(7-Zip 存档器)。我正在创建没有窗口的进程,并且正在重定向标准输出。

我想知道如何停止“Process.Kill”以外的进程,因为这会导致留下不完整/损坏的存档文件。

如果我在从普通命令控制台窗口运行 7z.exe 时按下 CTRL-BREAK,它会正常关闭并删除不完整的文件。

如果 cmd.exe 可以启动进程并向其发送 ctrl-break 信号,那么我自己的应用程序如何启动进程并向其发送 ctrl-break(或等效)信号,以便进程正常关闭?

最佳答案

如果需要,您可以执行 thread.sleep 来暂停它。如果你想完全停止它,我会设置一个监视变量,然后暂停你的线程,处理任何现有数据(这可能是 7zip 正在做的),然后执行 process.kill。我认为没有(或不知道)一种方法可以自动“优雅地”处理中止进程。优雅地处理中断退出条件取决于您,程序员。

关于c# - 如何将控制中断(或等效信号)发送到 .NET 中的控制台应用程序进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16112029/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com