Vista 이상에서는 앱이 응답하지 않으면 바탕 화면 창 관리자가 필요에 따라 다시 그리기 (그 위에 창 이동, 끌기 등) 할 수 있습니다. 픽셀 버퍼. 또한 Windows는 일부 제한 시간이 지나면 앱이 응답하지 않을 때를 감지하여 상황을 극대화하려고합니다. 창을 어둡게 만들고 제목 표시 줄에 "응답 없음"을 추가하고 기타 다른 효과를 추가 할 것이라고 생각합니다.DWM 및 응답없는 앱 회화
이제 우리는 창 영역과 계층화 된 창을 사용하는 스킨 된 응용 프로그램을 가지고 있으며 이러한 효과를 제대로 수행하지 못합니다. 우리는 XP에서 개발해 왔지만 Vista에서 테스트 할 때 이상한 효과를 느꼈습니다. 일부 지점에서 응용 프로그램은 일부 계산이나 콜백 및 "5 초 내에 메시지를 검색하지 못하면 DWM이 창을 멈춘다 고 선언합니다"(MSDN - Preventing Hangs in Windows Applications)에 약간의 시간을 할애 할 수 있습니다. 이 문제가 발생하면 이상한 그래픽 문제가 발생합니다. 즉, 창 영역으로 인해 100 % 투명하게되는 모든 픽셀이 검은 색으로 바뀌므로 검정색 배경으로 창이 사각형을 효과적으로 다시 만듭니다. 원래 창의 픽셀이 일부 자식 대화 상자에서 조금씩 이동 한 다른 예외가있는 것 같습니다.
나는 그런 지연을 줄이기 위해 노력하고있다. (이상적으로 Windows는 이와 같이 할 필요가 없다.) 바쁜 동안에 응답 성을 유지하려고 노력하지만, 왜 그런 렌더링을 야기하는지 파악하고 싶다. , 나는 내가 모든 지연을 제거 할 수 있다고 보장 할 수 없기 때문에.
기본적으로, 필자는 Windows가 이런 일을 할 때 무엇을하는지 알고 싶습니다. 어떻게하면 내 앱이 제대로 동작하게 할 수 있을까요? 스킨이 적용된 앱은 Vista 이상에서 작동해야하므로 비표준 인 작업을 파악해야합니다. Windows가 응답하지 않는 응용 프로그램을 처리하는 방식에 대한 정보를 찾는 방법을 정확하게 알지 못합니다. 검색 결과가 응답하지 않는 응용 프로그램과 관련된 문제 만 반환하거나 DWM이 그러한 응용 프로그램으로 수행하는 작업에 대한 매우 기초적인 설명이 반환되기 때문입니다. 나는 100 % DWM이 책임이 있다고 확신하지는 못했지만 가능성이 높습니다. 잠재적 인 리드?
사진 문제;
Unresponsive app http://i42.tinypic.com/15ee8wo.jpg
이 [MSDN 페이지] (http://msdn.microsoft.com/en-us/library/dd744765(VS.85) .aspx)는 제한 시간이 5 초라고 말합니다. – RyanCu