private void CMDProc_OutputDataReceived(object sender, DataReceivedEventArgs e) { if (e?.Data?.Contains(LastInputID) == true) { OutputDone.Set(); } else { StandardOut += e.Data + Environment.NewLine; } }
public GenericCommandResult WriteInput(string input, string commandID) { StandardOut = ""; ErrorOut = ""; lock (BashProc) { LastInputID = commandID; OutputDone.Reset(); BashProc.StandardInput.WriteLine(input); BashProc.StandardInput.WriteLine("echo " + commandID); if (!OutputDone.WaitOne(TimeSpan.FromSeconds(30))) { return(GeneratePartialResult()); } } return(GenerateCompletedResult()); }