![]() |
|
||||||||
경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지 |
|
음 ^^::: 맞는 말씀입니다만 함수이름이 마이크로 슬립 ^^! 즉, 마이크로초 동안 슬립해야 할 경우에 사용하고 일반적인 경우는 Sleep() 을 쓰면 되겠죠 ^^...
그리고 while 루프만을 사용한다고 해서 다른 프로세서가 할일을 못하는 건 아닙니다. 어차피 CPU 스케쥴링이란게 우선순위가 같다면 동등분배(?)로 이루어 질테니까요. 물론 저코드가 실행되고 있는 쓰레드는 완전 멈춤(?) 상태겠지만요.. ^^... 흐~ 그리고 사실 마이크로 슬립이란게 의미가 있나란 생각도 들지만.... 음..~ 아니면 if( (current - last) > iTmp) return ; 문 밑에 Sleep(0) 을 넣는것도 괜찮겠지만... 크게 의미는 없어보여요 ^^ 뭐.... 상황에 맞추어 수정해서 쓰시면 될듯합니다. 음! .... 실시간 스트림 플레이와 같은 부분에서 타이밍 조정을 위해 사용은 가능할 듯하군요 ^^: Q&A 게시판에서 어느분이 나노슬립 글을 올리셔서 그거 보구 만든거라 ^^ 암튼 좋은 지적 감사합니다. 그리고 보통 Sleep(0) 은 제가 사용할 때는 쓰레드내에서 특정 플래그 처리 음... 디스트럭터 등에서 객체 참조가 끝날 때라던가 뭐 그럴때 ... 음.. 대기의 목적으로밖에는 사용하지 않아서요. while( getLockingCount() ) { Sleep(0); } 뭐 이렇게요 ^^ 관련 글 리스트
|
Copyright © 1999-2015, borlandforum.com. All right reserved. |
Header :
void MicroSleep( int iMicroSec );
Cpp :
void TZExpendTime::MicroSleep( int iMicroSec )
{
__int64 iTmp = (m_iSecTick * iMicroSec) / 1000 / 1000;
__int64 last, current;
getTick(last);
while( true )
{
getTick(current);
if( (current - last ) > iTmp ) return ;
}
}