2011-01-14 7 views
1

작업 스레드 중 하나에서 일부 코드를 실행하도록 주 스레드에 신호를 보내야합니다.작업자 스레드의 주 스레드에서 코드 실행

일부 COM 문제로 인해 코드가 주 스레드에서 실행되어야합니다 (스레드에서 실행하면 오류가 발생 함).

내가 메시지 및 이벤트 내가 remebered 때 매우 간단하고 바로 자바에서 그것을 할 방법 그리고 SWT)

이 있었다 (내가 앞을 향해 열린 길을 건너 가기 전에 실행되는 코드를 기다릴 필요)와 그것을 구현하기 시작했다
display.syncExec (new Runnable() { 
    public void run() { 
    if (!myWindow.isDisposed()) 
     myWindow.redraw(); 
    } 

MFC와 일반적으로 비슷한 것은 무엇입니까?

+0

Lishi, 스레드에서 메시지 펌프를 관리하는 것을 잊지 마세요! –

답변

1

PostThreadMessage WinAPI 함수를 사용하여 WM_USER 메시지를 주 스레드로 보낼 수 있습니다. 그런 다음 주 스레드에서 WM_USER을 처리하고 몇 가지 필요한 조치를 취할 수 있습니다.

+1

사용자 인터페이스를 표시하는 스레드에 PostThreadMessage를 사용하지 마십시오. 어떤 모달 루프 (modal loop)도 그러한 메시지를 비트 버켓에 빠지게 할 것이다. 창 크기를 조정할 때, 대화 상자를 표시하는 메시지 상자를 표시 할 때와 같이 사용됩니다. PostMessage()를 사용하십시오. –

관련 문제