Share via


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 nulo.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
    Prioridad deseada del subproceso.Para obtener una lista completa y una descripción de las prioridades disponibles, vea SetThreadPriority en Windows SDK.

  • nStackSize
    Especifica el tamaño en bytes de la pila para el nuevo subproceso.Si 0, los valores predeterminados del tamaño de pila a la pila del mismo tamaño que el subproceso creador.

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

    • Inicio de CREATE_SUSPENDED el subproceso con un recuento de suspensión de uno.Uso CREATE_SUSPENDED si desea inicializar algunos datos de miembros del objeto de 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 de iniciar el subproceso.El subproceso no se ejecutará hasta que se llame a CWinThread::ResumeThread.

    • Inicio de 0 el subproceso inmediatamente después de la creación.

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

Valor devuelto

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

Comentarios

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

AfxBeginThread crea un nuevo objeto de CWinThread, llama a la función de 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 dentro del subproceso, o cambiar de la función controladora de subprocesos de trabajo.

El multithreading se debe habilitar por la aplicación; si no, esta función no.Para obtener más información sobre la habilitación de multithreading, vea la /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 interfaz de usuario.

Ejemplo

Vea el ejemplo para CSocket::Attach.

Requisitos

Header: afxwin.h

Vea también

Referencia

AfxGetThread

Conceptos

Macros y funciones globales de MFC