문제

우리의 응용 프로그램은 시스템 호출이 DCC에서 실패한 RPC 오류를 받고 있습니다.0x80010100), 우리는 대상 스레드의 메시지 대기열이 가득 차 있다고 생각합니다 (이것이 Ture라고 확신하지는 않지만). 나는 대기열이 있다는 것을 알고 있습니다 제한된 10,000 메시지 그리고 공동 사례에서 우리 가이 숫자에 가까운 지 알고 싶습니다. 스레드의 메시지 대기열의 크기를 모니터링하는 방법이 있습니까?

내가 찾은 가장 유망한 선택은 GetQueueStatus 그러나 여기에는 큐의 메시지 수가 포함되지 않습니다.

도움이 되었습니까?

해결책

큐 크기를 모니터링하는 방법은 모르겠습니다 (커널 디버거 사용 부족 및 TIB+[0x40]의 내부 Win32thread 데이터 구조에서 그로벨링이 거의 권장되지 않습니다).

디버깅 목적으로 오류가 발생할 때 대기열이 가득 찼는 지 확인하려면 postthreadMessage를 사용해보십시오. 가득 차면 getLasterror () == 0x718로 호출이 실패해야합니다. (이 명령을 처리하기에 충분한 할당량을 사용할 수 없습니다.)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top