Create a thread.
unsigned long _beginthread( void( __cdecl *start_address )( void * ), unsigned stack_size, void *arglist );
unsigned long _beginthreadex( void *security, unsigned stack_size, unsigned ( __stdcall *start_address )( void * ), void *arglist, unsigned initflag, unsigned *thrdaddr );
C-Run time 라이브러리를 지원하는 Thread 생성함수들이다.
C-Run time 라이브러리를 지원한다는 뜻은 Thread내에서 C-Run time 함수를 사용했을경우 함수의 정확한 호출을 보장한다는 뜻이다.
ex) strtok
* _beginthread, _beginthreadex의 차이점
_beginthreadex의 경우 상태관리나 NT쪽에서의 보안쪽 파라미터가 추가 되어 있다 (_beginthread의 확장)
Thread 함수의 호출 방식이 틀리다.
_beginthread -> __cdecl
_beginthreadex -> __stdcall
* _endthread, _endthreadex의 차이점
_endthread와 _endthreadex 함수는 _beginthread와 _beginthreadex 에 의해 생성된 Thread함수를 명확히 종료할때 사용하고 Thread함수가 return 되면 자동으로 호출된다.
그러나 _endthreadex는 _endthread와 틀리게 Thread Handle을 자동으로 닫아주지 않는다
그래서 명시적으로 CloseHandle API를 이용해서 Handle을 닫아 주어야 한다
::CloseHandle(handle);
--
MSDN
'Dev > Windows' 카테고리의 다른 글
.NET Enterprise Services 성능 ( vs COM+) (0) | 2007.05.14 |
---|---|
DLL 파일 찾는 순서 (0) | 2007.05.14 |
DLL export (0) | 2007.05.14 |
서버 개체 오류 'ASP 0177 : 800401f3' (1) | 2007.03.29 |
VB 지원중단.. (0) | 2005.03.23 |