2011-01-31 5 views
0

두 가지 구성 요소로 구성된 Win32 응용 프로그램이 있습니다. 응용 프로그램 인터페이스로 작동하는 기본 창과 콘솔로 작동하는 보조 모덜리스 대화 상자. 응용 프로그램은 특정 (일반) 작업 중에 많은 양의 디버그 텍스트를 생성합니다.스레드 콘솔 창을 효율적으로 구현

모든 디버그 인쇄 호출 중에 콘솔의 편집 컨트롤을 업데이트해야하는 것은 제 제약 조건 때문에 다소 비쌉니다. 내 의도는 작업자 스레드에 의해 주기적으로 덤프되는 중요한 섹션 동기화 된 메시지 큐를 생성하는 것입니다. 이러한 구현을 코딩 할 수있는 방법에 대한 제안을 보내 주시면 감사하겠습니다.

+0

* CS 동기화 *는 무엇을 의미합니까? –

+0

중요 섹션 - 동기화 됨. 나는 명확하게하기 위해 질문을 편집 할 것이다. – shadeMe

+0

이 질문은 너무 모호해서 좀 더 자세히 설명하려고합니다. 어떤 부분이 당신에게 불분명합니까? –

답변

0

주 스레드에서 타이머를 사용하여 시도해 보았지만 제대로 작동했습니다. 포스터 덕분에!

0

새 스레드를 실행하는 대신 편집 제어 창에서 메시지 펌프를 잠자십시오.

0

그냥 멀티 스레딩 및 GUI에 관한이 재발 문제를 돌봐 :

당신이 창에 메시지를 게시 할 수 있고, 다른 스레드로부터의 GUI 요소에 액세스하지 마십시오, 그래서 코드는 메인 스레드 경우에 실행됩니다 GUI에서 뭔가를 변경합니다.

1

작업자 스레드에서 CS를 잠그고 공유 데이터 구조에 추가하십시오. GUI 스레드에서 timer을 설정하고 WM_TIMER 메시지 처리기에서 CS를 잠근 다음 공유 데이터 구조에서 제거하고 편집 컨트롤에 추가하십시오.

+0

귀하의 게시물을 통해 타이머를 시험해 보았습니다. 많은 감사합니다. – shadeMe

관련 문제