Oharra
Orrialde honetara sartzeak baimena behar du. Saioa hasteko edo direktorioak aldatzen saia zaitezke.
Orrialde honetara sartzeak baimena behar du. Direktorioak aldatzen saia zaitezke.
IWorkerThreadClient es la interfaz implementada por los clientes de la clase CWorkerThread.
Importante
Esta clase y sus miembros no se pueden usar en las aplicaciones que se ejecutan en Windows Runtime.
Sintaxis
__interface IWorkerThreadClient
Miembros
Métodos
| Nombre | Descripción |
|---|---|
| CloseHandle | Implementa este método para cerrar el control asociado a este objeto. |
| Ejecutar | Este método se implementa para ejecutar código cuando se señale el identificador asociado a este objeto. |
Comentarios
Implemente esta interfaz cuando tenga código que necesite ejecutarse en un subproceso de trabajo en respuesta a un identificador que se señale.
Requisitos
Header: atlutil.h
IWorkerThreadClient::CloseHandle
Implementa este método para cerrar el control asociado a este objeto.
HRESULT CloseHandle(HANDLE hHandle);
Parámetros
hHandle
El manipulador que se va a cerrar.
Valor devuelto
Devuelve S_OK si es correcto o en caso de error, un error HRESULT.
Comentarios
El manipulador que se pasó a este método estaba anteriormente asociado a este objeto mediante una llamada a CWorkerThread::AddHandle.
Ejemplo
En el código siguiente se muestra una implementación sencilla 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
Este método se implementa para ejecutar código cuando se señale el identificador asociado a este objeto.
HRESULT Execute(DWORD_PTR dwParam, HANDLE hObject);
Parámetros
dwParam
El parámetro del usuario.
hObject
El manipulador que se ha indicado.
Valor devuelto
Devuelve S_OK si es correcto o en caso de error, un error HRESULT.
Comentarios
El manipulador y el puntero o DWORD que se pasó a este método estaba asociado anteriormente a este objeto mediante una llamada a CWorkerThread::AddHandle.
Ejemplo
En el código siguiente se muestra una implementación sencilla 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;
}