IWorkerThreadClient – rozhraní
IWorkerThreadClient
je rozhraní implementované klienty CWorkerThread třídy.
Důležité
Tuto třídu a její členy nelze použít v aplikacích, které se spouští v prostředí Windows Runtime.
Syntax
__interface IWorkerThreadClient
Členové
Metody
Název | Description |
---|---|
CloseHandle | Implementací této metody zavřete popisovač přidružený k tomuto objektu. |
Spuštěním | Implementujte tuto metodu pro spuštění kódu, když se zobrazí popisovač přidružený k tomuto objektu. |
Poznámky
Toto rozhraní implementujte, pokud máte kód, který je potřeba spustit v pracovním vlákně v reakci na signál popisovače.
Požadavky
Hlavička: atlutil.h
IWorkerThreadClient::CloseHandle
Implementací této metody zavřete popisovač přidružený k tomuto objektu.
HRESULT CloseHandle(HANDLE hHandle);
Parametry
hHandle
Úchyt, který se má zavřít.
Návratová hodnota
Vraťte S_OK při úspěchu nebo chybu HRESULT při selhání.
Poznámky
Popisovač předaný této metodě byl dříve přidružen k tomuto objektu voláním CWorkerThread::AddHandle.
Příklad
Následující kód ukazuje jednoduchou implementaci .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
Implementujte tuto metodu pro spuštění kódu, když se zobrazí popisovač přidružený k tomuto objektu.
HRESULT Execute(DWORD_PTR dwParam, HANDLE hObject);
Parametry
dwParam
Parametr uživatele.
hObject
Popisovač, který se signalizoval.
Návratová hodnota
Vraťte S_OK při úspěchu nebo chybu HRESULT při selhání.
Poznámky
Popisovač a DWORD/ukazatel předaný této metodě byly dříve přidruženy k tomuto objektu voláním CWorkerThread::AddHandle.
Příklad
Následující kód ukazuje jednoduchou implementaci .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;
}