System.Diagnostics.Process занимает больше времени по сравнению с командной строкой

Я пытаюсь смонтировать VHD-файл изнутри кода C# с помощью System.Diagnostics.Process для выполнения команды 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 ответов

Другие вопросы по тегам