정리가 필요한 카테고리(추후 정리)/C#,Unity

C#] Thread.Sleep 대신 사용할 Delay 함수

TwinParadox 2018. 7. 12. 00:00
728x90

System.Threading.Thread.Sleep을 이용해 간단하게 지연이 가능하나, 프로그램 자체를 완전 멈춰버린다.

원하던 작업이 이게 아니라면 다른 함수를 사용해야 하는데, 아래 Delay 함수가 꽤 쓸만했다.


private static DateTime Delay(int MS)
{
    DateTime ThisMoment = DateTime.Now;
    TimeSpan duration = new TimeSpan(0, 0, 0, 0, MS);
    DateTime AfterWards = ThisMoment.Add(duration);
    while (AfterWards >= ThisMoment)
    {
        System.Windows.Forms.Application.DoEvents();
        ThisMoment = DateTime.Now;
    }
    return DateTime.Now;
}



함수를 이처럼 선언하고 Delay(2000)을 적용하면 2초(2000밀리초) 딜레이가 가능하다.

728x90