다음을 통해 공유


SHCreateThread 함수(shlwapi.h)

스레드를 만듭니다.

구문

BOOL SHCreateThread(
  [in]           LPTHREAD_START_ROUTINE pfnThreadProc,
  [in, optional] void                   *pData,
  [in]           SHCT_FLAGS             flags,
  [in, optional] LPTHREAD_START_ROUTINE pfnCallback
);

매개 변수

[in] pfnThreadProc

형식: LPTHREAD_START_ROUTINE

LPTHREAD_START_ROUTINE 형식의 애플리케이션 정의 함수에 대한 포인터입니다. 새 스레드를 성공적으로 만든 경우 이 애플리케이션 정의 함수는 해당 스레드의 컨텍스트에서 호출됩니다. SHCreateThread 는 호출자에게 반환하기 전에 이 매개 변수가 가리키는 함수가 완료되기를 기다리지 않습니다. 애플리케이션 정의 함수의 반환 값은 스레드의 종료 코드입니다.

[in, optional] pData

형식: void*

초기화 데이터를 포함하는 선택적 애플리케이션 정의 데이터 구조에 대한 포인터입니다. pfnThreadProc 및 필요에 따라 pfnCallback이 가리키는 함수에 전달됩니다. 이 값은 NULL일 수 있습니다.

[in] flags

형식: SHCT_FLAGS

함수의 동작을 제어하는 플래그입니다. 하나 이상의 CTF 상수입니다.

[in, optional] pfnCallback

형식: LPTHREAD_START_ROUTINE

LPTHREAD_START_ROUTINE 형식의 선택적 애플리케이션 정의 함수에 대한 포인터입니다. 이 함수는 pfnThreadProc 에서 가리키는 함수가 호출되기 전에 생성된 스레드의 컨텍스트에서 호출됩니다. 또한 pData 를 인수로 받습니다. SHCreateThreadpfnCallback 이 가리키는 함수가 반환될 때까지 기다렸다가 호출자에게 돌아갑니다. pfnCallback이 가리키는 함수의 반환 값은 무시됩니다.

반환 값

형식: BOOL

스레드가 성공적으로 만들어지면 TRUE 를 반환하고, 그렇지 않으면 FALSE 를 반환합니다. 오류가 발생하면 GetLastError 를 사용하여 여기에 표시된 대로 특정 오류 값을 검색합니다.

if (!SHCreateThread(...))
{
    hr = HRESULT_FROM_WIN32( GetLastError() );
}
else
{
    ....
}

설명

pfnThreadProcpfnCallback에서 가리키는 함수는 다음 형식을 사용해야 합니다.

DWORD WINAPI ThreadProc(LPVOID pData)
{
  ...
}

함수 이름은 임의입니다. pData 매개 변수는 초기화 정보가 있는 애플리케이션 정의 데이터 구조를 가리킵니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional, Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 shlwapi.h
라이브러리 Shlwapi.lib
DLL Shlwapi.dll(버전 5.0 이상)

추가 정보

CreateProcess

CreateThread

SHCreateThreadRef

SHGetThreadRef

SHReleaseThreadRef

SHSetThreadRef

셸 및 일반 컨트롤 버전