첫 인수가 스레드 핸들일 경우, 스레드가 종료하거나 두번째 인수인 time-out 시간에 도달하면 리턴하게 된다. 그런데 조금 유의할 게 둘이상의 스레드가 대기하는 경우... 타겟 스레드 종료시점이나 타임아웃 시점에 대기순서대로의 실행을 보장해주지 못한다. 이를 테면 WaitForSingleObject(h타겟스레드, 타임아웃); 이런 대기코드가 존재하고 대기 스레드 1이 먼저 대기상태에 들어가고 이후 대기 스레드 2가 대기상태에 들어가고 조금 있다가 대기 스레드 3이 대기상태에 들어간 후 타겟 스레드가 실행이 종료되면 대기상태에 가장 먼저 들어간 스레드 1이 먼저 실행되진 않는다. 대기 스레드 1, 대기 스레드 2, 대기 스레드 3 이런 순으로 항상 실행되지 않는다. 여러 번 테스트해 봤는데 거의 무작위..