본문 바로가기
프로그래머/프로그래밍

Sleep함수 안쓰고 효과 주기 C++,C#

by plog 2013. 5. 9.

멀티 쓰레드 프로그램 환경에서 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;

 }

댓글