다음을 통해 공유


AfxBeginThread

이 함수를 호출하여 새 스레드를 만듭니다.

CWinThread* AfxBeginThread( 
   AFX_THREADPROC pfnThreadProc, 
   LPVOID pParam, 
   int nPriority = THREAD_PRIORITY_NORMAL, 
   UINT nStackSize = 0, 
   DWORD dwCreateFlags = 0, 
   LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL  
); 
CWinThread* AfxBeginThread( 
   CRuntimeClass* pThreadClass, 
   int nPriority = THREAD_PRIORITY_NORMAL, 
   UINT nStackSize = 0, 
   DWORD dwCreateFlags = 0, 
   LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL  
);

매개 변수

  • pfnThreadProc
    작업자 스레드에 대한 제어 함수를 가리킵니다. NULL이 될 수 없습니다. 이 함수는 다음과 같이 선언해야 합니다.

    UINT __cdecl MyControllingFunction( LPVOID pParam );

  • pThreadClass
    CWinThread에서 파생된 개체의 RUNTIME_CLASS.

  • pParam
    pfnThreadProc의 함수 선언에 매개 변수가 전달되는 것처럼 기능 제어에 매개 변수가 전달됩니다.

  • nPriority
    스레드의 원하는 우선 순위. 사용 가능한 우선 순위의 전체 목록과 설명을 보려면 Windows SDK에서 SetThreadPriority를 참조하십시오.

  • nStackSize
    새 스레드의 스택 크기를 지정합니다(바이트 단위). 0인 경우 스택 크기 기본값은 만드는 스레드와 스택의 크기가 동일합니다.

  • dwCreateFlags
    스레드 생성을 제어하는 추가 플래그를 지정합니다. 이 플래그는 두 값 중 하나를 포함할 수 있습니다.

    • CREATE_SUSPENDED   일시 중단 횟수 1로 스레드를 시작합니다. 스레드가 실행되기 전에 CWinThread 개체의 모든 멤버 데이터를 초기화하려면(예: m_bAutoDelete 또는 파생 클래스의 모든 멤버) CREATE_SUSPENDED를 사용합니다. 초기화가 완료되면 CWinThread::ResumeThread를 사용하여 스레드 실행을 시작합니다. 스레드는 CWinThread::ResumeThread가 호출될 때까지 실행되지 않습니다.

    • 0   스레드를 만든 후 즉시 시작합니다.

  • lpSecurityAttrs
    스레드의 보안 특성을 지정하는 SECURITY_ATTRIBUTES를 가리킵니다. NULL인 경우 스레드 생성과 동일한 보안 특성이 사용됩니다. 이 구조에 대한 자세한 내용은 Windows SDK를 참조하십시오.

반환 값

새로 만든 스레드 개체에 대한 스레드 또는 오류가 발생하는 경우는 NULL

설명

AfxBeginThread의 첫 번째 폼은 작업자 스레드를 만듭니다. 두 번째 폼은 사용자 인터페이스 스레드 또는 작업자 스레드로 사용될 수 있는 스레드를 만듭니다.

AfxBeginThread는 새 CWinThread 개체를 만들고 해당 CreateThread 함수를 호출하여 스레드 실행을 실행하고 스레드에 포인터를 반환합니다. 작성의 일부가 실패한 경우 전체 프로시저에서 모든 개체가 제대로 할당 해제되었는지 확인합니다. 스레드를 종료하려면 스레드 내부에서 AfxEndThread를 호출하거나 작업자 스레드의 제어 함수에서 반환합니다.

응용 프로그램에서 다중 스레딩을 사용하도록 설정해야 합니다. 그렇지 않으면 이 함수가 실패합니다. 다중 스레딩을 사용하도록 설정하는 방법에 대한 자세한 내용은 Visual C++ 컴파일러 옵션 아래의 /MD, /MT, /LD(런타임 라이브러리 사용)를 참조하십시오.

AfxBeginThread에 대한 자세한 내용은 다중 스레딩: 작업자 스레드 만들기다중 스레딩: 사용자 인터페이스 스레드 만들기 문서를 참조하십시오.

예제

자세한 내용은 CSocket::Attach 예제를 참조하십시오.

요구 사항

헤더: afxwin.h

참고 항목

참조

AfxGetThread

개념

MFC 매크로 및 전역