Classe CWinThread
Representa um thread de execução dentro de um aplicativo.
class CWinThread : public CCmdTarget
Comentários
Principal thread de execução é geralmente fornecido por um objeto derivado de CWinApp; CWinApp é derivado de CWinThread. De adicionaisCWinThread objetos permitem que vários threads dentro de um determinado aplicativo.
Há dois tipos Geral de segmentos que CWinThread oferece suporte: threads de trabalho e segmentos de interface do usuário.Threads de trabalho não têm bomba nenhuma mensagem: Por exemplo, um thread que realiza cálculos de plano de fundo em um aplicativo de planilha.Threads de interface do usuário têm uma bomba de mensagem e processam mensagens recebidas do sistema de.CWinApp e classes derivadas de ele são exemplos de segmentos de interface do usuário.Outros threads de interface do usuário também podem ser derivados diretamente de CWinThread.
Objetos de classe CWinThread Existem normalmente durante o thread. Se você quiser modificar esse comportamento, defina m_bAutoDelete to FALSE.
The CWinThread classe é necessário tornar seu código e MFC totalmente thread-safe. Local de segmento dados usado pela estrutura para manter informações específicas do thread é gerenciado por CWinThread objetos. Por causa dessa dependência de CWinThread para manipular thread-dados locais, qualquer thread que usa MFC deve ser criado pelo MFC. Por exemplo, um thread criado pela função do time de execução _beginthread, _beginthreadex não é possível usar as APIs do MFC.
Para criar um thread, chamar AfxBeginThread.Há duas formas, dependendo de como você deseja que um thread de trabalho ou a interface do usuário.Se você desejar que um thread de interface do usuário, passar para AfxBeginThread um ponteiro para o CRuntimeClass do seu CWinThread-classe derivada. Se você desejar criar um thread de trabalho, passar para AfxBeginThread um ponteiro para a função de controle e o parâmetro para a função de controle. Para threads de trabalho e segmentos de interface do usuário, você pode especificar parâmetros opcionais que modificam o dimensionar da pilha, prioridade, sinalizadores de criação e atributos de segurança.AfxBeginThread irá retornar um ponteiro para o novo CWinThread objeto.
Em vez de chamar AfxBeginThread, você pode construir um CWinThread-derivados do objeto e, em seguida, telefonar CreateThread. Esse método de construção de dois estágios é útil se você deseja reutilizar o CWinThread objeto entre sucessivas de criação e encerramentos de execuções de thread.
Para obter mais informações sobre o CWinThread, consulte os artigos Multithreading com C++ e do MFC, Multithreading: Criação de threads de interface do usuárioMultithreading: Criar trabalho encadeamentose Multithreading: Como usar a sincronização classes.
Requisitos
Cabeçalho: afxwin.h