Nota
L-aċċess għal din il-paġna jeħtieġ l-awtorizzazzjoni. Tista’ tipprova tidħol jew tibdel id-direttorji.
L-aċċess għal din il-paġna jeħtieġ l-awtorizzazzjoni. Tista’ tipprova tibdel id-direttorji.
IWorkerThreadClient is the interface implemented by clients of the CWorkerThread class.
Important
This class and its members cannot be used in applications that execute in the Windows Runtime.
Syntax
__interface IWorkerThreadClient
Members
Methods
| Name | Description |
|---|---|
| CloseHandle | Implement this method to close the handle associated with this object. |
| Execute | Implement this method to execute code when the handle associated with this object becomes signaled. |
Remarks
Implement this interface when you have code that needs to execute on a worker thread in response to a handle becoming signaled.
Requirements
Header: atlutil.h
IWorkerThreadClient::CloseHandle
Implement this method to close the handle associated with this object.
HRESULT CloseHandle(HANDLE hHandle);
Parameters
hHandle
The handle to be closed.
Return Value
Return S_OK on success, or an error HRESULT on failure.
Remarks
The handle passed to this method was previously associated with this object by a call to CWorkerThread::AddHandle.
Example
The following code shows a simple implementation of 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
Implement this method to execute code when the handle associated with this object becomes signaled.
HRESULT Execute(DWORD_PTR dwParam, HANDLE hObject);
Parameters
dwParam
The user parameter.
hObject
The handle that has become signaled.
Return Value
Return S_OK on success, or an error HRESULT on failure.
Remarks
The handle and DWORD/pointer passed to this method were previously associated with this object by a call to CWorkerThread::AddHandle.
Example
The following code shows a simple implementation of 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;
}