2013-12-11 2 views

답변

-3

글쎄, 수업 중에도 할 수 있습니다. 발신자 활동의 컨텍스트를 얻으십시오. 그리고 메서드에서 do context.runOnUIThread()

+0

고맙지 만 호출자가 UI 스레드에 있도록하고 그렇지 않으면 예외를 throw하는 것을 의미합니다 ... –

1

이 코드를 클래스 메서드 안에 넣습니다. MFC의 작동 방식을

if(!"UI thread".equals(Thread.currentThread().getName())){ 
    throw new IllegalStateException("wrong thread running this class, thread name:"+Thread.currentThread().getName()); 
    } 
+0

고맙습니다! 그 코드는 매우 유망 해 보입니다. –

0

이 동작은 다음과 같습니다

하여 MFC 창 클래스는 그들로부터 예상되는 무엇을 수행하지 마십시오 많은 방법 대신에 그들이 보내거나 큐에 메시지를 게시이있는 GUI/주 그 스레드가 수신 대기합니다.

따라서 기존의 크로스 스레드 메시징 메커니즘을 사용하거나 나만의 메시징 메커니즘을 만들어야합니다.