与命令提示符相比,System.Diagnostics.Process需要更多时间

时间:2014-05-11 06:55:14

标签: c# system.diagnostics vhd waitforexit

我正在尝试使用System.Diagnostics.Process从c#代码中挂载VHD文件来执行diskpart.exe命令。

以下是我使用的代码段:

        process.StartInfo.FileName = "diskpart.exe";
        process.StartInfo.UseShellExecute = false;
        process.StartInfo.CreateNoWindow = true;
        process.StartInfo.RedirectStandardOutput = true;
        process.StartInfo.RedirectStandardError = true;
        process.StartInfo.RedirectStandardInput = true;

        process.Start();
        StreamWriter writer = process.StandardInput;

        writer.Write("select vdisk file=" + vhdfile + System.Environment.NewLine);
        writer.Write("attach vdisk" + System.Environment.NewLine);
        writer.Write("online disk" + System.Environment.NewLine);
        writer.Write("select part 1" + System.Environment.NewLine);
        writer.Write("remove all" + System.Environment.NewLine);
        writer.Write("assign mount=" + mountpoint + System.Environment.NewLine);

        writer.Close();

        process.WaitForExit();
        process.Close();

问题是如果我在命令提示符中执行相同的命令(使用批处理文件),则执行大约需要0.5秒。但是如果我运行上面的代码,WaitForExit()返回需要大约5秒钟。

我尝试将RedirectStandardOutput和RedirectStandardError设置为true和false,但我认为没有区别。

请告诉我这里可能出错的地方。

感谢。

0 个答案:

没有答案