컴퓨터 지식 네트워크 - 컴퓨터 구성 - sendmessage와 postmessage의 차이점은 무엇인가요?

sendmessage와 postmessage의 차이점은 무엇인가요?

오랜 시간이 흘렀던 것 같습니다. 위에서 모두 아주 잘 설명했습니다. 후손들에게도 해석될 수 있도록 생생하게 설명하겠습니다. .

PostMessage와 SendMessage의 차이점은 주로 다른 프로그램의 메시지 처리를 기다릴지 여부에 있습니다.

PostMessage는 메시지를 대기열에 넣고 다른 프로그램이 이를 처리하는지 여부에 관계없이 반환한 다음 실행을 계속합니다.

SendMessage는 반환하기 전에 다른 프로그램이 메시지를 처리할 때까지 기다려야 합니다. 계속되는 실행.

이 두 함수의 반환 값도 다릅니다. PostMessage의 반환 값은 PostMessage 함수가 올바르게 실행되었는지 여부를 나타냅니다----BOOL,

반환은 다음과 같습니다. SendMessage 값은 다른 프로그램이 메시지를 처리함을 나타냅니다. 최종 반환 값 ---LRESULT.

PostMessage는 메시지를 창의 메시지 대기열로 보낸 다음 즉시 반환합니다.

SendMessage는 메시지를 창 함수로 보내고 창 함수가 메시지를 처리한 후에 반환합니다. 따라서 PostMessage는 비동기 처리인 반면 SendMessage는 동기 처리입니다.

먼저 Send와 Post라는 두 영어 단어의 의미를 살펴보겠습니다. Send는 보내는 것을 의미하고 Post는 게시를 의미합니다.

우리가 실생활에서 어떻게 편지를 썼는지 생각해보면(오래전...) 기억하기가 매우 간단합니다.

보내기: 우편배달부와 동일합니다. 그는 자신의 손으로 속달 우편을 보낼 것입니다. 그것을 수취인에게 전달하고 그가 떠나기 전에 수취인의 서명을 요구합니다. 메시지 메커니즘에서는 즉, 시스템(mailman)이 수신된 메시지(우체국 배포)를 특정 창의 창 프로세스(수신자)에게 직접 보내고 해당 창을 처리해야 합니다(수신자의 서명). ) ) 돌아오기 전에. 이게 SendMessage 입니다

Post: 우체국, 우체통 등에 해당합니다. 편지를 쓴 후 우체국에 건네주거나 우체통에 부치는데, 언제 도착할까요? 편지를 보내고 어디로 보내나요? 편지를 부칠 때 집에 가기 전에 편지가 수신자에게 도착할 때까지 기다리지 않습니다. 메시지 메커니즘에서, 즉 시스템(우리)은 수신된 메시지(편지)를 애플리케이션의 메시지 루프(메일함과 동일)에 게시한 다음 특히 이 메시지를 처리할 시기(보내야 할 시간)를 사람들에게 표시합니다. 이메일), "작업 효율성"에 따라 다릅니다.

차이는 분명합니다. SendMessage 메시지는 대기열에 들어가지 않지만 PostMessage 메시지는 대기열에 들어가야 합니다.

그러나 한 사람은 대기열에 들어가고 싶어하고 다른 사람은 그렇지 않더라도 메시지가 처리되는 최종 위치는 동일하다는 점을 설명할 가치가 있습니다. 시스템은 처리를 위해 창 프로시저를 호출합니다(수신자). 응답)

上篇: VBScript.Encode 암호 해독 下篇: 바이러스를 발음하는 법
관련 내용