2012-01-31 4 views
2

실행 된 프로세스에서 콘솔에 오류 메시지를 쓸 수 있습니까? 일반적으로 콘솔 내에서 Console.Writeline()을 사용하는 데 익숙합니다. 추가 프로세스 (다른 어셈블리에서)는 콘솔 및 잠재적으로 GUI를 통해 작동하도록 설계되었습니다.백그라운드 스레드의 이벤트 루프에서 콘솔에 쓰는 방법?


그러나 이벤트 처리기 (즉, 콜백)에 메소드를 연결하면 Console.WriteLine이 작동하지 않습니다. 현재 사용

:

var thread=new Thread(someMethod); 
thread.Start(); 

, 콜백이가 여기있어 전원 해고하는 콘솔 메시지가 실종 얻을 수 있습니다.

+0

여전히 Console.WriteLine()을 사용하여 작동해야합니다. 오류가 있습니까? –

답변

2

Console.WriteLine()도 작동해야합니다.

업데이트 :

일부 콘솔 응용 프로그램의 출력을 캡처하려면, Capturing console output from a .NET application (C#)에서 봐 주시기 바랍니다.

+0

+1 : 유용한 정보. 하지만 다른 콘솔 앱은 아닙니다. 또 다른 내부 스레드. – sgtz

1

정확하게 이해할 수 있을지 잘 모르겠습니다. 하위 프로세스의 표준 출력을 읽고 부모 콘솔에 기록하고 싶습니까? 그런 다음 Process.StandardOutput 속성을 사용하여 StreamReader을 받고 읽기 시작할 수 있습니다.

+0

타사 어셈블리를 사용하는 .net 어셈블리입니다. 타사 .dll 콜백 이벤트 콘솔 콘솔 데이터 빠는 경우 궁금하네요. 그게 가능하니? 나는 그 질문을 갱신했다. – sgtz

2

메시지가 혼재하는 두 가지 스트림이 염려되는 경우 Console.Error.WriteLine()을 사용하지 않으시겠습니까? 그런 다음 실행시 오류 스트림을 (예를 들어) 파일로 리디렉션 할 수 있습니다.

+0

+1 : ty. 두 개의 시내가 서로 섞여 있어도 상관 없습니다. 한 스트림이 전혀 나타나지 않는다고 걱정했습니다. 지금 실행 중에 콘솔에서 정보 팝업을보고 싶을뿐입니다. 질문을 업데이트했습니다. – sgtz

1

당신이 표준 .NET 추적을 사용하는 경우, 당신은의 app.config를 통해 ConsoleTraceListener을 구성 할 수 있습니다 : 이 접근법은 더이 질문을 통해 탐구한다 http://msdn.microsoft.com/en-us/library/system.diagnostics.consoletracelistener.aspx

: 그것은 진단에 매우 좋다 Redirect Trace output to Console

목적을 설명합니다. 텍스트 파일 작성자 등을 연결할 수 있습니다.

+0

+1 : ty. 그건 정말 편리한 정보입니다. 문제는 심지어 Console.WriteLine이 실패하고 있다는 것입니다. 질문을 조금 업데이트했습니다. – sgtz

1

외부의 컴파일 된 프로세스 즉 실행 파일입니까?

Process 클래스를 사용하여 프로세스를 시작하는 경우 콘솔에 일반적으로 작성된 텍스트를 다른 스트림으로 리디렉션 할 수있는 Process.StandardOutput 속성을 찾고있을 수 있습니다.

그렇지 않으면 어떤 종류의 "프로세스"에 대해 이야기하고 있습니까?

+0

외부 컴파일 프로세스가 아닙니다. 그것은 알고 있지만 유용합니다. – sgtz

관련 문제