Win32 메시지 큐의 깊이는 어느 정도입니까?


13

표준 창에 대한 대기열의 메시지 수는 몇 개입니까? 대기열이 오버플로되면 어떻게됩니까?

GetMessage 및 친척에 대한 문서는 이에 대해 아무 것도 말하지 않으며, PeekMessage은 메시지 수가 아닌 특정 메시지 클래스에 대해서만 예/아니요를 제공합니다.

This page은 대기열이 메모리 매핑 파일을 사용하여 구현되며 메시지 수 제한은 없지만 해당 페이지는 WinCE에 관한 것입니다. 이것은 데스크톱 Win32에도 적용됩니까?

13

10000 기본적으로 레지스트리를 통해 조정할 수 있습니다.

대기열이 오버플로되면 PostMessage가 실패합니다. 여기

문서 : 당신은 메시지 큐의 크기에 대해 걱정할 필요가있는 경우

은 MSDN 문서에 명시된 바와 같이

PostMessage function on MSDN

  0

2000/XP - Vista에 대한 모든 아이디어를 다룹니다. 23 sep. 082008-09-23 19:52:35

  0

Vista Business SP1 컴퓨터에서이 기사에 나열된 레지스트리 키를 살펴본 결과 10000으로 설정되었습니다. Vista에서 큐 길이를 결정하는 유일한 요소인지는 확실하지 않습니다. 23 sep. 082008-09-23 19:55:52

  0

나는 알지 못하지만 다를 수는 없다. 비스타가 그렇게 혁명적 인 것은 아니지만 나는 생각하지 않는다. ... 23 sep. 082008-09-23 19:59:05

+1

한 가지 더 - 메시지 대기열을 다른 스레드가 먹는 대기열로 사용할 생각이라면 실망 할 것이다. 결과. 응답이없는 GUI로 끝날 것입니다. 저희 회사는이 실패한 설계 기법에 대해 많은 경험을 가지고 있습니다. 23 sep. 082008-09-23 20:00:44

  0

안녕 코리, 해줘서 고마워. 언급 된 제한 및 레지스트리 키 (조정할 수 있음)는 Windows 8에서도 작동합니다. 22 aug. 132013-08-22 12:06:15


3

, 당신은 응용 프로그램을 재 설계 나을 수 있습니다.

  0

이 경우 대기열의 반대편에 있습니다. 우리 장치 드라이버가 메시지를 게시하고 장난감 플래시 응용 프로그램이 몇 분 후에 멈추었습니다. 24 sep. 082008-09-24 13:17:11