CWinThread Class

Representa un subproceso de ejecución dentro de una aplicación.

class CWinThread : public CCmdTarget

Miembros

Constructores públicos

Name

Descripción

CWinThread::CWinThread

Crea un objeto CWinThread.

Métodos públicos

Name

Descripción

CWinThread::CreateThread

Inicia la ejecución de un objeto de CWinThread .

CWinThread::ExitInstance

Reemplace para limpiar cuando el subproceso termina.

CWinThread::GetMainWnd

Recupera un puntero a la ventana principal del subproceso.

CWinThread::GetThreadPriority

Obtiene la prioridad del subproceso actual.

CWinThread::InitInstance

Reemplace para realizar la inicialización de la instancia del subproceso.

CWinThread::IsIdleMessage

Comprueba mensajes especiales.

CWinThread::OnIdle

Reemplace para realizar el procesamiento subproceso- específico de tiempo de inactividad.

CWinThread::PostThreadMessage

Envía un mensaje a otro objeto de CWinThread .

CWinThread::PreTranslateMessage

Mensajes de filtros antes de que se envíen a las funciones de Windows TranslateMessage y DispatchMessage.

CWinThread::ProcessMessageFilter

Algunos mensajes de las intersecciones antes de que llegan a la aplicación.

CWinThread::ProcessWndProcException

Intercepta todas las excepciones no controladas producidas por los controladores de mensajes y del subproceso.

CWinThread::PumpMessage

Contiene el bucle de mensajes del subproceso.

CWinThread::ResumeThread

Disminuye el recuento de suspensión de un subproceso.

CWinThread::Run

Supervisar la función para subprocesos con un mensaje bombee. Reemplace para personalizar el bucle de mensajes predeterminado.

CWinThread::SetThreadPriority

Establece la prioridad del subproceso actual.

CWinThread::SuspendThread

Incrementa el recuento de suspensión de un subproceso.

Operadores públicos

Name

Descripción

CWinThread::operator HANDLE

Recupera el identificador de objeto de CWinThread .

Miembros de datos públicos

Name

Descripción

CWinThread::m_bAutoDelete

Especifica si destruir el objeto en la finalización del subproceso.

CWinThread::m_hThread

Identificador del subproceso actual.

CWinThread::m_nThreadID

Id. del subproceso actual.

CWinThread::m_pActiveWnd

Puntero a la ventana principal de la aplicación contenedora cuando un servidor OLE está activo en contexto.

CWinThread::m_pMainWnd

Contiene un puntero a la ventana principal de la aplicación.

Comentarios

El subproceso de ejecución principal es proporcionado normalmente mediante un objeto derivado de CWinApp; CWinApp se deriva de CWinThread. Objetos adicionales de CWinThread permiten varios subprocesos dentro de una aplicación determinada.

Hay dos tipos generales de subprocesos que CWinThread admite: subprocesos de trabajo y de interfaz de usuario. Los subprocesos de trabajo no tienen ninguna suministro de mensajes: por ejemplo, un subproceso que realiza cálculos en segundo plano en una aplicación de hoja de cálculo. Los subprocesos de interfaz de usuario tienen mensajes de mensaje de suministro y procesar del sistema. CWinApp y clases derivados de son ejemplos de subprocesos de interfaz de usuario. Otros subprocesos de interfaz de usuario también se pueden derivar directamente de CWinThread.

Los objetos de la clase CWinThread existen normalmente para la duración del subproceso. Si desea modificar este comportamiento, establezca m_bAutoDelete a FALSE.

La clase de CWinThread es necesaria para que la codificación y MFC segura para subprocesos. Los datos de Subproceso- local utiliza el marco para mantener la información subproceso- concreta es administrado por los objetos de CWinThread . Debido a esta dependencia en CWinThread para administrar datos de subproceso- local, cualquier subproceso que utiliza MFC se debe crear por MFC. Por ejemplo, un subproceso creado por la función _beginthread, _beginthreadex en tiempo de ejecución no puede usar ningún MFC API.

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

En lugar de llamar a AfxBeginThread, puede construir CWinThread- objeto derivado y llamar después a CreateThread. Este método de dos fases de la construcción es útil si desea reutilizar el objeto de CWinThread entre la creación y las finalizaciones sucesivas de las ejecuciones de subproceso.

Para obtener más información sobre CWinThread, vea los artículos Multithreading con C++ y MFC, Multithreading: Crear subprocesos de interfaz de usuario, Multithreading: Crear subprocesos de trabajo, y Multithreading: Cómo utilizar las clases de sincronización.

Jerarquía de herencia

CObject

CCmdTarget

CWinThread

Requisitos

Encabezado: afxwin.h

Vea también

Referencia

CCmdTarget (Clase)

Gráfico de jerarquías

CWinApp Class

CCmdTarget (Clase)