3 using System.Collections.Generic;
4 using System.Diagnostics;
6 namespace SiliconStudio
19 var adbProcess = Process.Start(
20 new ProcessStartInfo(command, parameters)
22 UseShellExecute =
false,
23 CreateNoWindow =
true,
24 RedirectStandardError =
true,
25 RedirectStandardOutput =
true,
27 adbProcess.OutputDataReceived += (_, args) => LockProcessAndAddDataToList(adbProcess, outputs.OutputLines, args);
28 adbProcess.ErrorDataReceived += (_, args) => LockProcessAndAddDataToList(adbProcess, outputs.OutputErrors, args);
29 adbProcess.BeginOutputReadLine();
30 adbProcess.BeginErrorReadLine();
31 adbProcess.WaitForExit();
33 outputs.ExitCode = adbProcess.ExitCode;
43 public static Process
RunProcess(
string command,
string parameters)
46 new ProcessStartInfo(command, parameters)
48 UseShellExecute =
false,
49 CreateNoWindow =
true,
50 RedirectStandardError =
true,
51 RedirectStandardOutput =
true,
61 private static void LockProcessAndAddDataToList(Process process, List<string> output, DataReceivedEventArgs args)
63 if (!
string.IsNullOrEmpty(args.Data))
67 output.Add(args.Data);
static ProcessOutputs RunProcessAndGetOutput(string command, string parameters)
Run the process and get the output without deadlocks.
static Process RunProcess(string command, string parameters)
Run a process without waiting for its output.