0
c를 본인은 Process
클래스
문제로부터 상속 클래스 CCProcess
를 작성한
C#에서 System.Diagnostics.Process가를 이용한 프로세스를 생성하고 ErrorDataRecieved 또는 OutputDataReceived는 해고되지 않는 것을 .. herez 내 코드 내가 뭘 잘못System.Diagnostics.Process가 통해 프로세스를 시작할 때 수신에는 출력되지 - #
public CCProcess(string executablePath, string[] parameters, CCProcessInfo processInfo)
{
this.ProcessInfo = processInfo;
this.OutputMessages = new List<ProcessOutputMessage>();
this.ProcessId = Guid.NewGuid().ToString();
base.EnableRaisingEvents = true;
this.StartInfo = new ProcessStartInfo(executablePath)
{
Arguments = string.Join(" ", parameters.Select(s => string.Format("\"{0}\"", s))),
CreateNoWindow = true,
ErrorDialog = false,
RedirectStandardError = true,
RedirectStandardInput = true,
RedirectStandardOutput = true,
StandardErrorEncoding = Encoding.UTF8,
StandardOutputEncoding = Encoding.UTF8,
WindowStyle = ProcessWindowStyle.Hidden,
UseShellExecute = false
};
this.ErrorDataReceived += (sender, e) =>
{
this.OutputMessages.Add(new ProcessOutputMessage() { Message = e.Data, Type = OutputType.Error });
if (this.ErrorData_Recieved != null&&!string.IsNullOrEmpty(e.Data))
{
this.ProcessInfo.LastResponseFromProcess = DateTime.Now;
this.ErrorData_Recieved(e.Data);
}
};
this.OutputDataReceived += (sender, e) =>
{
this.OutputMessages.Add(new ProcessOutputMessage() { Message = e.Data, Type = OutputType.Output });
if (OutputData_Recieved != null && !string.IsNullOrEmpty(e.Data))
{
this.ProcessInfo.LastResponseFromProcess = DateTime.Now;
OutputData_Recieved(e.Data);
}
};
}
?
는 제공된 코드는 어쨌든
나는 Bery에 기본적인 일을
Process.BeginOutputReadLine()
낭비 2시간 때문에 누락 된 클래스의 생성자 CCProcess
왜 downvote? 4 년 전 완전하고 나 자신에 의해 답변 된 질문에? –