protected ProcessWrapper(Process process, bool startImmediately) { if (process == null) throw new ArgumentNullException("process"); this.process = process; process.OutputDataReceived += OnOutputDataReceived; process.ErrorDataReceived += OnErrorDataReceived; processDisposer = new SafeDisposable(process); if (startImmediately) { process.Start(); } }