如何检查进程是否结束,然后在C#ProcessStartInfo中执行下一个命令?

时间:2012-12-13 08:47:15

标签: c# process.start processstartinfo

我有一段运行命令行的代码,并在下面执行一些操作:

        ProcessStartInfo psi = new ProcessStartInfo();
        psi.FileName = "CMD.EXE";
        System.Console.WriteLine("please insert the path of working directory");
        string path = System.Console.ReadLine();
        psi.WorkingDirectory = path; //@"D:\Exercises\npp52\scintilla\src";
        psi.Arguments = "/C dir /s /b | cccc - --outdir=d:\\jon";
        psi.WindowStyle = ProcessWindowStyle.Normal;
        Process.Start(psi);
        // ... cut ...
        XmlTextReader reader = new XmlTextReader(@"D:\jon\anonymous.xml");
        while (reader.Read()) 
        {
            switch (reader.NodeType) { /* ... */ }
        }

第二件不等到第一件完成然后开始。特别是在第一篇文章之前会产生anonimous.xml的第二篇文章试图拿出那个xml。

1 个答案:

答案 0 :(得分:2)

如果你添加这一行:

Process.Start(psi);
psi.WaitForExit(); // <-- add this

您的代码应该等待该过程结束。