IWorkerThreadClient 인터페이스
IWorkerThreadClient
는 CWorkerThread 클래스의 클라이언트에서 구현하는 인터페이스입니다.
Important
이 클래스와 해당 멤버는 Windows 런타임에서 실행되는 애플리케이션에서 사용할 수 없습니다.
구문
__interface IWorkerThreadClient
멤버
메서드
속성 | 설명 |
---|---|
CloseHandle | 이 개체와 연결된 핸들을 닫도록 이 메서드를 구현합니다. |
Execute | 이 개체와 연결된 핸들이 신호를 받으면 코드를 실행하도록 이 메서드를 구현합니다. |
설명
신호가 전송되는 핸들에 대한 응답으로 작업자 스레드에서 실행해야 하는 코드가 있는 경우 이 인터페이스를 구현합니다.
요구 사항
헤더: atlutil.h
IWorkerThreadClient::CloseHandle
이 개체와 연결된 핸들을 닫도록 이 메서드를 구현합니다.
HRESULT CloseHandle(HANDLE hHandle);
매개 변수
hHandle
닫을 핸들입니다.
Return Value
성공 시 S_OK 반환하거나 실패 시 오류 HRESULT를 반환합니다.
설명
이 메서드에 전달된 핸들은 이전에 CWorkerThread::AddHandle을 호출하여 이 개체와 연결되었습니다.
예시
다음 코드는 간단한 구현을 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
이 개체와 연결된 핸들이 신호를 받으면 코드를 실행하도록 이 메서드를 구현합니다.
HRESULT Execute(DWORD_PTR dwParam, HANDLE hObject);
매개 변수
dwParam
사용자 매개 변수입니다.
hObject
신호를 받은 핸들입니다.
Return Value
성공 시 S_OK 반환하거나 실패 시 오류 HRESULT를 반환합니다.
설명
이 메서드에 전달된 핸들 및 DWORD/포인터는 이전에 CWorkerThread::AddHandle을 호출하여 이 개체와 연결되었습니다.
예시
다음 코드는 간단한 구현을 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;
}