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.
Syntaxe
__interface IWorkerThreadClient
Členové
Metody
Název | Popis |
---|---|
CloseHandle | Implementujte tuto metodu pro zavření popisovače přidruženého k tomuto objektu. |
Execute | Implementujte tuto metodu pro spuštění kódu, když obslužná rutina přidružená k tomuto objektu se stane signalizovat. |
Poznámky
Implementujte toto rozhraní, pokud máte kód, který je potřeba spustit v pracovním vlákně v reakci na popisovač, který se stane signalizovat.
Požadavky
Hlavička: atlutil.h
IWorkerThreadClient::CloseHandle
Implementujte tuto metodu pro zavření popisovače přidruženého 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ž obslužná rutina přidružená k tomuto objektu se stane signalizovat.
HRESULT Execute(DWORD_PTR dwParam, HANDLE hObject);
Parametry
dwParam
Parametr uživatele.
hObject
Popisovač, který byl signalován.
Návratová hodnota
Vraťte S_OK při úspěchu nebo chybu HRESULT při selhání.
Poznámky
Popisovač a ukazatel 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;
}