Compartilhar via


Classe CWinThread

Representa um segmento de execução dentro de um aplicativo.

class CWinThread : public CCmdTarget

Membros

Construtores public

Nome

Descrição

CWinThread::CWinThread

Constrói um objeto de CWinThread .

Métodos públicos

Nome

Descrição

CWinThread::CreateThread

Inicia a execução de um objeto de CWinThread .

CWinThread::ExitInstance

Substituição a limpeza quando o thread finalizar.

CWinThread::GetMainWnd

Recupera um ponteiro para a janela principal para o segmento.

CWinThread::GetThreadPriority

Obtém a prioridade de segmento atual.

CWinThread::InitInstance

Substituição para executar a inicialização de instância de segmento.

CWinThread::IsIdleMessage

Verifica para mensagens especiais.

CWinThread::OnIdle

Substituição para executar o processamento de segmento específico de tempo ocioso.

CWinThread::PostThreadMessage

Enviar uma mensagem a outro objeto de CWinThread .

CWinThread::PreTranslateMessage

Mensagens de filtro antes que elas sejam despachados funções do windows TranslateMessage e DispatchMessage.

CWinThread::ProcessMessageFilter

Determinadas mensagens de intercepções antes que atingiu o aplicativo.

CWinThread::ProcessWndProcException

Intercepta todas as exceções não tratadas geradas por manipuladores de mensagem e de comando do segmento.

CWinThread::PumpMessage

Contém o loop de mensagem de segmento.

CWinThread::ResumeThread

Diminui um segmento suspendem a contagem.

CWinThread::Run

A função de controle para segmentos com uma mensagem bombeia. Substituição para personalizar o loop de mensagem padrão.

CWinThread::SetThreadPriority

Define a prioridade de segmento atual.

CWinThread::SuspendThread

Sai um segmento suspendem a contagem.

Operadores públicos

Nome

Descrição

ALÇA de CWinThread::operator

Recupera a alça de objeto de CWinThread .

Membros públicos de dados

Nome

Descrição

CWinThread::m_bAutoDelete

Especifica se destruir no fim do segmento.

CWinThread::m_hThread

Identificador para o segmento atual.

CWinThread::m_nThreadID

Identificação do segmento atual.

CWinThread::m_pActiveWnd

Ponteiro para a janela principal do aplicativo quando um contêiner de servidor OLE está no lugar.

CWinThread::m_pMainWnd

Contém um ponteiro para a janela principal do aplicativo.

Comentários

O segmento principal de execução é geralmente fornecido por um objeto derivado de CWinApp; CWinApp é derivado de CWinThread. Os objetos adicionais de CWinThread permitem vários segmentos em um determinado aplicativo.

Há dois tipos gerais de segmentos que CWinThread suporta: segmentos de trabalho e segmentos da interface do usuário. Segmentos de trabalho não têm nenhuma mensagem bomba: por exemplo, um segmento que executa cálculos em segundo plano em um aplicativo de planilha. Segmentos de interface do usuário têm as mensagens de mensagem de uma bomba do processo e recebidas do sistema. CWinApp e as classes derivadas de ela são exemplos de segmentos da interface do usuário. Outros segmentos da interface do usuário também podem ser derivados diretamente de CWinThread.

Os objetos de classe CWinThread geralmente existem para a duração do segmento. Se você desejar alterar esse comportamento, defina m_bAutoDelete a Falso.

A classe de CWinThread é necessária para tornar seu código e MFC totalmente thread-safe. Os dados do local com usados pela estrutura para manter informações específicas de segmento são gerenciados por objetos de CWinThread . Devido a essa dependência em CWinThread para manipular dados de com local, qualquer segmento que usar o MFC deve ser criado pelo MFC. Por exemplo, um segmento criado pela função _beginthread, _beginthreadex em tempo de execução não pode usar quaisquer APIs MFC.

Para criar um segmento, chame AfxBeginThread. Há duas formas, dependendo se você quiser um trabalhador ou um encadeamento de interface do usuário. Se você quiser um encadeamento de interface do usuário, passe a AfxBeginThread um ponteiro para CRuntimeClass do seu CWinThread- classe derivada. Se você deseja criar um segmento de trabalho, passe a AfxBeginThread um ponteiro para a função de controle e o parâmetro na função de controle. Para ambos os segmentos de trabalho e segmentos da interface do usuário, você pode especificar parâmetros opcionais que modificam a prioridade, o tamanho da pilha, os sinalizadores de design, e os atributos de segurança. AfxBeginThread retornará um ponteiro para o novo objeto de CWinThread .

Em vez de chamar AfxBeginThread, você pode construir CWinThreadobjeto derivado e chamar CreateThread. Este método de dois estágios de compilação é útil se você deseja reutilizar o objeto de CWinThread entre criar e terminações sucessivas de um segmento.

Para obter mais informações sobre CWinThread, consulte os artigos multithreading com C++ e MFC, multithreading: Criando segmentos da interface do usuário, multithreading: Criando segmentos de trabalho, e multithreading: Como usar as classes de sincronização.

Hierarquia de herança

CObject

CCmdTarget

CWinThread

Requisitos

Cabeçalho: afxwin.h

Consulte também

Referência

Classe CCmdTarget

Gráfico da hierarquia

Classe de CWinApp

Classe CCmdTarget