Фоновый рабочий процесс
Моя программа запускает процесс, определение которого существует в другом классе. Недавно я добавил background worker для отображения состояния выполняемой работы при запуске процесса cmd.
код выглядит примерно так в презентаторе
string command = @"xcopy C:\test1.txt C:\test2.txt"; Process process = new Process(); process.StartInfo.FileName = "cmd.exe"; process.StartInfo.Arguments = command; process.StartInfo.RedirectStandardInput = true; process.StartInfo.RedirectStandardOutput = true; process.StartInfo.CreateNoWindow = true; process.StartInfo.UseShellExecute = false; process.Start(); process.WaitForExit(); if(process.ExitCode == 0) return true; else return false;
Проблема здесь в том, что процесс возвращает true, несмотря на то, что файл не копируется.
Когда я использую один и тот же код без какого-либо фонового работника, он работает нормально, однако использование его не делает работу.
Любая помощь будет оценена по достоинству.
Что я уже пробовал:
Также пробовать
string command = @"xcopy C:\test1.txt C:\test2.txt"; Process process = new Process(); process.StartInfo.FileName = "cmd.exe"; process.StartInfo.RedirectStandardInput = true; process.StartInfo.RedirectStandardOutput = true; process.StartInfo.CreateNoWindow = true; process.StartInfo.UseShellExecute = false; process.Start(); process.StandardInput.WriteLine(command); process.StandardInput.Flush(); process.StandardInput.Close(); process.WaitForExit(); if(process.ExitCode == 0) return true; else return false;