CWinThread

Un objeto CWinThread representa un subproceso de ejecución dentro de una aplicación. El subproceso principal de ejecución generalmente es proporcionado por un objeto que deriva de CWinApp; CWinApp se deriva de CWinThread. Objetos CWinThread adicionales permiten múltiples subprocesos dentro de una aplicación determinada.

Hay dos tipos generales de subprocesos que soporta CWinThread : subprocesos y subprocesos de interfaz de usuario. Subprocesos no tienen ninguna bomba de mensaje: por ejemplo, un subproceso que realiza cálculos de fondo en una aplicación de hoja de cálculo. Subprocesos de interfaz de usuario tienen una bomba de mensaje y procesan los mensajes recibidos desde el sistema. CWinApp y clases derivadas de ella son ejemplos de subprocesos de interfaz de usuario. Otros subprocesos de interfaz de usuario también se pueden derivar directamente de CWinThread.

Objetos de la clase CWinThread normalmente existen para la duración de la rosca. Si desea modificar este comportamiento, establezca m_bAutoDelete en FALSE.

La clase de CWinThread es necesaria para hacer su código y MFC completamente seguras para los subprocesos. Datos de subproceso local utilizados el marco para mantener la información específica de la rosca es administrados por objetos CWinThread . Debido a esta dependencia CWinThread para manejar datos de subproceso local, debe crearse cualquier subproceso que utiliza MFC MFC. Por ejemplo, un subproceso creado por la función de tiempo de ejecución _beginthreadex no se puede utilizar cualquier API de MFC.

Para crear un subproceso, llame a AfxBeginThread. Hay dos formas, dependiendo de si desea que un subproceso de interfaz de usuario o trabajador. Si desea que un subproceso de interfaz de usuario, pasar a AfxBeginThread un puntero a la CRuntimeClass de tu CWinThread-clase derivada. Si desea crear un subproceso de trabajo, pasar a AfxBeginThread de un puntero a la función de control y el parámetro a la función de control. Para subprocesos y subprocesos de interfaz de usuario, puede especificar parámetros opcionales que modifican los atributos de seguridad, prioridad, tamaño de pila y banderas de creación. AfxBeginThread devolverá un puntero al objeto CWinThread nuevo.

En lugar de llamar a AfxBeginThread, puede construir un CWinThread-objeto derivado y, a continuación, llame CreateThread. Este método de construcción de dos fases es útil si desea reutilizar el objeto CWinThread entre creación sucesiva y terminaciones de las ejecuciones de hilo.

Para obtener más información sobre CWinThread, vea los artículos subprocesamiento múltiple con C++ y MFC, subprocesamiento múltiple: crear subprocesos de interfaz de usuario, subprocesamiento múltiple: crear subprocesos de trabajo, y subprocesamiento múltiple: cómo usar las clases de sincronización en la Guía del programador de Visual C++.

Miembros de la clase |nbsp; Clase base | Diagrama de jerarquía

Muestra  Ejemplo de MFC MTGDI

Vea tambié&nnbsp;CWinApp, CCmdTarget.

Index