Loading...
2010. 10. 31. 00:48

CreateEvent

대기상태에 있는 스레드 모두를 실행가능한 상태로 변경해 줄 수 있다. HANDLE CreateEvent( LPSECURITY_ATTRIBUTES lpEventAttributes, BOOL bManualReset, BOOL bInitialState, LPTSTR lpName ); lpEventAttributes : NULL 넣어주면 된다. bManualReset : manual-reset 모드 event로 생성할 것인지 auto-reset 모드 event로 생성할 것인지 지정. 만약 TRUE를 전달하면 manual-reset모드의 event가 발생하는데 event가 signaled 상태에 있을 경우 resetevent함수를 호출하지 않는 이상 non-signaled상태로 돌아가지 않는다. 반면에 FALSE..

2010. 10. 30. 23:11

_beginthreadex

스레드를 생성하는 함수. 스레드는 커널에 의해 생성되는 리소스이므로 커널 오브젝트가 생성될 것이고 함수 호출이 끝나면 커널 오브젝트를 의미하는 핸들이 리턴 될 것이다. 1. Win32 API의 CreateThread 대신 C Run Time Library의 _beginthreadex를 써야하는 경우 1.부동 소수형 변수나 함수를 사용할 경우 2.C의 malloc과 free나 C++ 의 new와 delete 를 사용할경우 3.stdio.h 나 io.h에서 어떤 함수를 호출한다면 4.strtok() 나 rand() 와 같이 정적 버퍼를 사용 하는 어떤 런타임 함수를 호출할 경우 출처 : http://www.fiadot.com/TatterTools/index.php?pl=476&setdate=200402&PH..

2010. 10. 30. 22:03

WaitForSingleObject

DWORD WaitForSingleObject( HANDLE hHandle, // handle to object DWORD dwMilliseconds // time-out interval ); 실패시 WAIT_FAILED 리턴 HhANDLE : 상태를 확인할 커널 오브젝트의 핸들을 전달. 이 핸들의 커널 오브젝트 상태가 signaled가 되어야 리턴한다. non-signaled상태에 있을 경우 함수는 리턴하지 않고 대기상태로 들어간다. dwMilliseconds : 타임아웃을 설정한다. 커널오브젝트가 singnaled 상태로 바뀌지 않을 경우 무한대기 상태로 빠질수 있다. 그러나 타임아웃을 설정해 놓으면 그 시간이 지나서 바로 리턴하게 된다. 1/1000초 단위로 설정한다. 만약 INFINITE를 전달할..