안녕하세요. 카크랍니다.
구현상의 문제에 대해서는 수야님 말씀을 보시면 될것 같구요..
어디선가 보았던 (무슨 책 뒤에 나와 있었던것 같은데..)
소스 하나를 올립니다. Sleep()보다는 훨 유용하겠죠? ^^;
//////////////////////////////////////////////////////////
void __fastcall Snooze(float numSec)
{
MSG msg;
DWORD timeout = (numSec*1000UL) + GetCurrentTime();
while(GetCurrentTime() < timeout)
{
if(PeekMessage(&msg,NULL,0,0,PM_REMOVE))
{
if(msg.message == WM_QUIT)
{
PostQuitMessage(0);
break;
}
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
}
/////////////////////////////////////////////////////////////
백상열 님이 쓰신 글 :
: 안녕하세요..
:
: 간단한 채팅프로그램을 만들어봤습니다.
: 메시지출력이 너무 빨라서 시간지연을 Sleep();함수를 사용해서 화면출력을 지연시켰습니다
:
: 그랬더니 그 프로그램에서는 데이터를 받아들이는 소켓부분이있는데, 클라가 보내온 data까지
: 받지않고 Sleep 말 그대로 잠자고있습니다.
:
: 지정한 함수(루틴)에서는 시간이 delay되면서도 소켓을 받아들이는 부분에서는 정상적으로
: 시간지연없이 받아들여야하는데..
:
: 이방법은 불가능할까요 ?
: 아니면 Sleep();보다 차라리 for Loop를 돌리는게 더나을까요?
:
: 도사님의 조언을 듣고싶습니다. 그럼..
:
: --- 늑대 ---
|