멀티 쓰레드 프로그램 환경에서 Sleep 대신 약간의 딜레이가 필요 할때가 있다.
나의 경우 여러 스크린샷을 찍어 저장할때 사용 하였다.
C++
void CMainFrame::Delay()
{
MSG msg;
DWORD dwStart;
dwStart = GetTickCount();
while(GetTickCount() - dwStart < 1500) // 1000 =1초
{
while(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
}
C#
private DateTime Delay(int ms)
{
DateTime dateTimeNow = DateTime.Now;
TimeSpan duration = new TimeSpan(0, 0, 0, 0, ms);
DateTime dateTimeAdd = dateTimeNow.Add(duration);
while (dateTimeAdd >= dateTimeNow)
{
System.Windows.Forms.Application.DoEvents();
dateTimeNow = DateTime.Now;
}
return DateTime.Now;
}
'프로그래머 > 프로그래밍' 카테고리의 다른 글
vs2010 pinvokestackimbalance 관련 예외(크리스탈 리포트) (0) | 2013.05.16 |
---|---|
vs2010 pinvokestackimbalance 관련 예외 (0) | 2013.05.15 |
SVN branches, trunk, tags 디렉토리 의미 (0) | 2013.04.23 |
select 구문 단축키 설정 (0) | 2013.04.22 |
게시판 페이징 SP 예제 (1) | 2013.04.02 |
댓글