c#程序在运行其他进程后退出

本文关键字:进程 退出 其他 运行 程序 | 更新日期: 2023-09-27 18:05:27

这个问题很奇怪。我以前从未遇到过这样的事情。我试图使我的程序提取一个文件使用7zip。我以前在其他节目中做过这个,从来都不是很难。我复制粘贴我的代码到:

Process process = new Process
{
    StartInfo =
    {
        CreateNoWindow = true,
        WindowStyle = ProcessWindowStyle.Hidden,
        FileName = "7za.exe",
        UseShellExecute = false,
        ErrorDialog = false,
        Arguments = "x -y -o'"" + outputPath +"'" '""+ inputFile +"'"",
        RedirectStandardOutput = false,
    }
};
process.Start();

在这段代码运行之后,我的应用程序立即终止。它就这样消失了。它当然不是故意的!我使用了step into function并运行了它。process.Start();一完成程序就关闭了,让我回到Visual c#中。它没有运行任何Application.Exit();什么的,它就这样消失了。在Visual c#中没有错误等待我。所以我试着在最后添加一个MessageBox.Show("Test");。在步进模式下运行。process.Start();是否正常,一旦它执行了MessageBox代码,它又消失了。我甚至没有在消息框中点击ok(它在应用程序终止前显示了大约0.2秒)

c#程序在运行其他进程后退出

如果这段代码在Main()中,那么当你的代码完成执行时,它将结束。您能将包含此片段的完整代码张贴在哪里吗?

您可以通过包含

等待进程完成。
process.WaitForExit();

检查ExitCode可能会告诉您进程是否成功。你总是可以重定向standardror来检查那个的输出。

process.StartInfo.RedirectStandardError = true;
string error = process.StandardError.ReadToEnd();

在process.Start()之后尝试process.WaitForExit()