IWorkerThreadClient, interface
IWorkerThreadClient
est l’interface implémentée par les clients de la classe CWorkerThread .
Important
Cette classe et ses membres ne peuvent pas être utilisés dans les applications qui s’exécutent dans Windows Runtime.
Syntaxe
__interface IWorkerThreadClient
Membres
Méthodes
Nom | Description |
---|---|
CloseHandle | Implémentez cette méthode pour fermer le handle associé à cet objet. |
Execute | Implémentez cette méthode pour exécuter du code lorsque le handle associé à cet objet devient signalé. |
Notes
Implémentez cette interface lorsque vous avez du code qui doit s’exécuter sur un thread de travail en réponse à un handle qui devient signalé.
Spécifications
En-tête : atlutil.h
IWorkerThreadClient ::CloseHandle
Implémentez cette méthode pour fermer le handle associé à cet objet.
HRESULT CloseHandle(HANDLE hHandle);
Paramètres
hHandle
Handle à fermer.
Valeur de retour
RetourneZ S_OK en cas de réussite ou d’erreur HRESULT en cas d’échec.
Notes
Le handle passé à cette méthode a été précédemment associé à cet objet par un appel à CWorkerThread ::AddHandle.
Exemple
Le code suivant montre une implémentation simple 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
Implémentez cette méthode pour exécuter du code lorsque le handle associé à cet objet devient signalé.
HRESULT Execute(DWORD_PTR dwParam, HANDLE hObject);
Paramètres
dwParam
Paramètre utilisateur.
hObject
Handle qui est devenu signalé.
Valeur de retour
RetourneZ S_OK en cas de réussite ou d’erreur HRESULT en cas d’échec.
Notes
Le handle et le pointeur DWORD passés à cette méthode ont été précédemment associés à cet objet par un appel à CWorkerThread ::AddHandle.
Exemple
Le code suivant montre une implémentation simple 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;
}