Sdílet prostřednictvím


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

Viz také

Třídy
CWorkerThread – třída