Sleep()함수 대신 프로그램 딜레이 시키기
개발을 하다가 보면... 어떤 조건이 true가 될 때까지 기다려야 할 때가 있다.
그렇게 하려면 loop를 사용해야한다.
그리고 대기함수인 Sleep() 함수를 사용하게 되는 경우가 생기는데
이 함수를 사용하면. 모든 메세지 처리가 중단되기 때문에
프로그램 응답 없음과 같은 애매하고 난감한 사항에 처하게 된다.
그래서 이 Sleep()이라는 함수 대신에
프로세스나 쓰레드에서 사용되는 메세지는 처리되면서 특정조건이
만족할 때까지 기다릴 수 있는 함수가 필요하다.
대기시간 동안 메세지큐에서 메세지를 확인하여 처리하면서
기다리게 해준다.
/////////////////////////////////////////////////////////////////
// 수행 대기 delay 함수(instead sleep function)
/////////////////////////////////////////////////////////////////
void CBaApp::Wait(DWORD dwMillisecond)
{
MSG msg;
DWORD dwStart;
dwStart = GetTickCount();
while(GetTickCount() - dwStart < dwMillisecond)
{
while(PeekMessage(&msg,NULL,0,0,PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
}
'IT-개발,DB' 카테고리의 다른 글
[개발/VC] 레지스트리 키 열기, 닫기, 목록 가져오기, 키 값 가져오기 (0) | 2011.04.13 |
---|---|
[개발/MFC] VC++/MFC API 팁 (0) | 2011.04.13 |
[IT/정보] 모바일 웹사이트 여기 다 모였다 (0) | 2011.04.06 |
[개발/모바일] 모바일 웹 브라우저를 체크하는 법 (0) | 2011.04.05 |
[개발/php] PHP로 모바일 브라우저 여부 체크( mobile user agent) (0) | 2011.04.02 |
댓글