Интерфейс ИворкерсреадклиентIWorkerThreadClient Interface

IWorkerThreadClient — Это интерфейс, реализуемый клиентами класса кворкерсреад .IWorkerThreadClient is the interface implemented by clients of the CWorkerThread class.

Важно!

Этот класс и его члены не могут использоваться в приложениях, выполняемых в среда выполнения Windows.This class and its members cannot be used in applications that execute in the Windows Runtime.

СинтаксисSyntax

__interface IWorkerThreadClient

ЧленыMembers

МетодыMethods

ИмяName ОписаниеDescription
CloseHandleCloseHandle Реализуйте этот метод, чтобы закрыть маркер, связанный с этим объектом.Implement this method to close the handle associated with this object.
ExecuteExecute Реализуйте этот метод для выполнения кода, когда дескриптор, связанный с этим объектом, получает сигнал.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

Заголовок: файлов atlutil. hHeader: atlutil.h

Иворкерсреадклиент:: CloseHandleIWorkerThreadClient::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

Возвращает S_OK об успешном выполнении или ошибку HRESULT при сбое.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

В следующем коде показана простая реализация IWorkerThreadClient::CloseHandle .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;
}

Иворкерсреадклиент:: ExecuteIWorkerThreadClient::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
Параметр User.The user parameter.

хобжектhObject
Дескриптор, который стал сигнальным.The handle that has become signaled.

Возвращаемое значениеReturn Value

Возвращает S_OK об успешном выполнении или ошибку HRESULT при сбое.Return S_OK on success, or an error HRESULT on failure.

КомментарииRemarks

Маркер и DWORD или указатель, переданный этому методу, ранее были связаны с этим объектом посредством вызова кворкерсреад:: аддхандле.The handle and DWORD/pointer passed to this method were previously associated with this object by a call to CWorkerThread::AddHandle.

ПримерExample

В следующем коде показана простая реализация IWorkerThreadClient::Execute .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;
}

См. также разделSee also

КлассыClasses
Класс КворкерсреадCWorkerThread Class