Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Observação
A Active Template Library (ATL) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.
IWorkerThreadClient é a interface implementada pelos clientes da classe CWorkerThread .
Importante
Esta classe e os seus membros não podem ser usados em aplicações que sejam executadas no Windows Runtime.
Sintaxe
__interface IWorkerThreadClient
Membros
Methods
| Nome | Description |
|---|---|
| CloseHandle | Implemente este método para fechar a alavanca associada a este objeto. |
| Executar | Implemente este método para executar código quando o handle associado a este objeto for sinalizado. |
Observações
Implementa esta interface quando tiveres código que precisa de ser executado numa thread de trabalho em resposta a um handle ser sinalizado.
Requerimentos
Cabeçalho: atlutil.h
IWorkerThreadClient::CloseHandle
Implemente este método para fechar a alavanca associada a este objeto.
HRESULT CloseHandle(HANDLE hHandle);
Parâmetros
hHandle
A maçaneta deve ser fechada.
Valor de retorno
Devolva S_OK em caso de sucesso, ou um erro HRESULT em caso de falha.
Observações
O handle passado para este método estava anteriormente associado a este objeto através de uma chamada para CWorkerThread::AddHandle.
Example
O código seguinte mostra uma implementação simples de IWorkerThreadClient::CloseHandle.
HRESULT CloseHandle(HANDLE hObject)
{
// Users should do any shutdown operation required here.
// Generally, this means just closing the handle.
if (!::CloseHandle(hObject))
{
// Closing the handle failed for some reason.
return AtlHresultFromLastError();
}
return S_OK;
}
IWorkerThreadClient::Execute
Implemente este método para executar código quando o handle associado a este objeto for sinalizado.
HRESULT Execute(DWORD_PTR dwParam, HANDLE hObject);
Parâmetros
dwParam
O parâmetro do utilizador.
hObjeto
O nome que se tornou sinalizado.
Valor de retorno
Devolva S_OK em caso de sucesso, ou um erro HRESULT em caso de falha.
Observações
O handle e o DWORD/pointer passados para este método estavam anteriormente associados a este objeto através de uma chamada para CWorkerThread::AddHandle.
Example
O código seguinte mostra uma implementação simples de IWorkerThreadClient::Execute.
HRESULT Execute(DWORD_PTR dwParam, HANDLE hObject)
{
// Cast the parameter to its known type.
LONG* pn = reinterpret_cast<LONG*>(dwParam);
// Increment the LONG.
LONG n = InterlockedIncrement(pn);
// Log the results.
printf_s("Handle 0x%08X incremented value to : %d\n", (DWORD_PTR)hObject, n);
return S_OK;
}