본문 바로가기
개발언어/C#

[C#] Delay 함수. Thread Sleep 대신 쓸만함.

by 창용이랑 2023. 2. 22.
728x90

 

 

private void button1_Click(object sender, EventArgs e)
{
    Delay(1000);
    MessageBox.Show("1초후에 메세지박스");
    Delay(3000);
    MessageBox.Show("3초후에 메세지박스");
    Delay(5000);
    MessageBox.Show("5초후에 메세지박스");
}
        
 
/// <summary>
/// Delay 함수 MS
/// </summary>
/// <param name="MS">(단위 : MS)
///
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;
}

 

Thread.Sleep 사용해봤다면 알다시피, 폼이 무용지물이 되어버린다.

그래서 구글링을 하던중, 이런 엄청난 코드를 발견하게 되서 공유합니다.

 

출처 : https://hyun222.tistory.com/57