public override void Open() { if (!String.IsNullOrEmpty(executable.Trim())) { base.Open(); process = new Process(); process.StartInfo = new ProcessStartInfo(executable, arguments); process.StartInfo.UseShellExecute = false; process.StartInfo.RedirectStandardInput = true; process.StartInfo.RedirectStandardOutput = true; process.EnableRaisingEvents = true; // required to be notified of exit process.Start(); Stream processStdOut = process.StandardOutput.BaseStream; Stream processStdIn = process.StandardInput.BaseStream; OnProcessStarted(); process.Exited += new EventHandler(process_Exited); streamingChannel = new EvaluationStreamChannel(processStdOut, processStdIn); streamingChannel.Open(); } else { throw new InvalidOperationException(Name + ": Cannot open the process channel because the executable is not defined."); } }
protected EvaluationStreamChannel(EvaluationStreamChannel original, Cloner cloner) : base(original, cloner) { }
public override void Open() { if (!String.IsNullOrEmpty(executable.Trim())) { base.Open(); process = new Process(); process.StartInfo = new ProcessStartInfo(executable, arguments); process.StartInfo.UseShellExecute = false; process.StartInfo.RedirectStandardInput = true; process.StartInfo.RedirectStandardOutput = true; process.EnableRaisingEvents = true; // required to be notified of exit process.Start(); Stream processStdOut = process.StandardOutput.BaseStream; Stream processStdIn = process.StandardInput.BaseStream; OnProcessStarted(); process.Exited += new EventHandler(process_Exited); streamingChannel = new EvaluationStreamChannel(processStdOut, processStdIn); streamingChannel.Open(); } else throw new InvalidOperationException(Name + ": Cannot open the process channel because the executable is not defined."); }