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;
}

참고 항목

클래스
CWorkerThread 클래스