System.Threading.Thread.Sleep(5000);

OOAD Chpater2장

Remote 버튼을 누르면 문이 열렸다가 5초 후에 자동으로 닫히는 코드가 있다.

책이 자바 소스로 구성되어 있기 때문에 아래와 같은 코드를 보여주는데

final Timer timer = new Timer();
timer.schedule(new TimerTask() {
  public void run() {
    door.close();
    timer.cancel();
  }
}, 5000);

굉장히 복잡해 보이지만 기능은 5초 후에 door.close를 실행하고 5초가 더 지난 후에 같은 일을 하지 않기 위해 timer를 멈추는것 뿐이다.

C#에도 Timer라는게 있긴 하지만 System.Threading의 Timer를 이용하면 별도의 Thread로 돌아서 단지 5초 후에 열린 문을 닫기만 하면 되는 이 기능에는 적합하지 않았다.
http://msdn.microsoft.com/ko-kr/library/5sadtxzb(VS.80).aspx

해서 Timer로만 검색을 하다 실제 이 기능이 동작할때 뿌려줄법한 메시지 – waiting 5 seconds 로 검색을 하니 역시나 social.msdn에서 걸린다.
C# wait for x seconds

그래서.. 5초만 기다리게 하는 코드는 ?

%d bloggers like this: