AfxBeginThread
Chame essa função para criar um novo thread.
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
Aponta para a função de controle para o thread de trabalho. Não pode ser NULL. Essa função deve ser declarada como a seguir:UINT __cdecl MyControllingFunction( LPVOID pParam );
pThreadClass
RUNTIME_CLASS de um objeto derivado de CWinThread.pParam
Parâmetro a ser passado à função de controle como mostrado no parâmetro para a declaração de função em pfnThreadProc.nPriority
A prioridade desejada do thread. Para obter uma lista completa e uma descrição de prioridades disponíveis, consulte SetThreadPriority em Windows SDK.nStackSize
Especifica o tamanho em bytes da pilha para o novo thread. Se 0, o tamanho de pilha padrão para o mesmo tamanho de pilha do thread de criação.dwCreateFlags
Especifica um sinalizador adicional que controla a criação do thread. Este sinalizador pode conter um de dois valores:CREATE_SUSPENDED Iniciar o thread com uma contagem de suspensão igual a um. Use CREATE_SUSPENDED se desejar inicializar quaisquer dados de membros do objeto de CWinThread, como m_bAutoDelete ou quaisquer membros da classe derivada, antes que o segmento inicie a execução. Assim que sua inicialização estiver concluída, use CWinThread::ResumeThread para iniciar a execução do thread. O thread não será executado até que CWinThread::ResumeThread seja chamado.
0 Iniciar o thread imediatamente após a criação.
lpSecurityAttrs
Aponta para uma estrutura SECURITY_ATTRIBUTES que especifica atributos de segurança para o thread. Se NULO, os mesmos atributos de segurança do thread serão usados. Para obter mais informações sobre essa estrutura, consulte o Windows SDK.
Valor de retorno
Ponteiro para o objeto de thread recém-criado ou NULO se ocorrer uma falha.
Comentários
A primeira forma de AfxBeginThread cria um thread de trabalho. O segundo formato cria um thread que poderá servir como um thread de interface do usuário ou como um thread de trabalho.
AfxBeginThread cria um novo objeto CWinThread, chama sua função CreateThread para iniciar a execução do thread e retorna um ponteiro para o thread. As verificações são feitas durante qualquer procedimento para certificar-se que todos os objetos são desalocados corretamente se qualquer parte da falha de design. Para encerrar o thread, chame AfxEndThread de dentro do thread ou retorne da função de controle do thread de trabalho.
Multithreading deve ser habilitado pelo aplicativo; caso contrário, essa função falhará. Para obter mais informações sobre como habilitar o multithreading, consulte /MD, /MT, /LD (usar biblioteca em tempo de execução) em Opções do compilador do Visual C++.
Para obter mais informações sobre AfxBeginThread, consulte os artigos Multithreading: Criando threads de trabalho e Multithreading: Criando threads de interface do usuário.
Exemplo
Consulte o exemplo para CSocket::Attach.
Requisitos
Cabeçalho: afxwin.h