AfxBeginThread

Llame a esta función para crear un nuevo subproceso.

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  
);

Parámetros

  • pfnThreadProc
    Señala la función controladora para el subproceso de trabajo. No puede ser NULL. Esta función debe declararse como sigue:

    UINT __cdecl MyControllingFunction( LPVOID pParam );

  • pThreadClass
    RUNTIME_CLASS de un objeto derivado de CWinThread.

  • pParam
    Parámetro que se va a pasar a la función controladora como se muestra en el parámetro a la declaración de función en pfnThreadProc.

  • nPriority
    La prioridad deseada para el subproceso. Para obtener una lista y descripción completas de las prioridades disponibles, vea SetThreadPriority en Windows SDK.

  • nStackSize
    Especifica el tamaño en bytes de la pila para el nuevo subproceso. Si es 0, el valor predeterminado para el tamaño de pila es el mismo que el del subproceso creador.

  • dwCreateFlags
    Especifica un mensaje adicional que controla la creación de subprocesos. Este marcador puede contener uno de dos valores:

    • CREATE_SUSPENDED   El subproceso se inicia con un recuento de suspensión de uno. Utilice CREATE_SUSPENDED si desea inicializar algunos datos de miembros del objeto CWinThread, como m_bAutoDelete o los miembros de la clase derivada, antes de que el subproceso inicie la ejecución. Una vez completada la inicialización, utilice CWinThread::ResumeThread para iniciar el subproceso. El subproceso no se ejecutará hasta que se llame a CWinThread::ResumeThread.

    • 0   El subproceso se inicia inmediatamente después de la creación.

  • lpSecurityAttrs
    Señala una estructura de SECURITY_ATTRIBUTES que especifica los atributos de seguridad del subproceso. Si NULL, se utilizarán los mismos atributos de seguridad del subproceso que crea. Para obtener más información sobre esta estructura, vea Windows SDK.

Valor devuelto

Puntero al objeto recién creado de subproceso, o NULL si se produce un error.

Comentarios

El primer formulario de AfxBeginThread crea un subproceso de trabajo. El segundo formulario crea un subproceso que sirve como un subproceso de interfaz de usuario o como subproceso de trabajo.

AfxBeginThread crea un nuevo objeto CWinThread, llama a su función CreateThread para empezar a ejecutar el subproceso y devuelve un puntero al subproceso. Se realizan comprobaciones en todo el procedimiento para asegurar que todos los objetos queden desasignados correctamente en caso de error en algún momento del proceso de creación. Para finalizar el subproceso, llame a AfxEndThread desde dentro del subproceso o cambie desde la función controladora de subprocesos de trabajo.

El multithreading se debe habilitar por la aplicación; si no, esta función producirá un error. Para obtener más información sobre la habilitación de multithreading, consulte /MD, /MT, /LD (Utilizar la biblioteca en tiempo de ejecución) en Opciones del compilador de Visual C++.

Para obtener más información sobre AfxBeginThread, vea los artículos Multithreading: Crear subprocesos de trabajo y Multithreading: Crear subprocesos de la interfaz de usuario.

Ejemplo

Vea el ejemplo para CSocket::Attach.

Requisitos

Encabezado: afxwin.h

Vea también

Referencia

AfxGetThread

Conceptos

Macros y variables globales de MFC