共用方式為


IWorkerThreadClient 介面

IWorkerThreadClient是由 CWorkerThread 類別的用戶端所實作的介面。

重要

這個類別及其成員不能用於在 Windows 執行階段 中執行的應用程式。

語法

__interface IWorkerThreadClient

成員

方法

名稱 描述
CloseHandle 實作這個方法以關閉與此對象相關聯的句柄。
執行 當與這個對象相關聯的句柄收到訊號時,請實作這個方法以執行程序代碼。

備註

當您有需要在背景工作線程上執行的程序代碼,以回應收到訊號的句柄時,請實作這個介面。

需求

標頭: atlutil.h

IWorkerThreadClient::CloseHandle

實作這個方法以關閉與此對象相關聯的句柄。

HRESULT CloseHandle(HANDLE  hHandle);

參數

hHandle
要關閉的句柄。

傳回值

傳回成功時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
user 參數。

物件
已收到訊號的句柄。

傳回值

傳回成功時S_OK,或在失敗時傳回錯誤 HRESULT。

備註

呼叫 CWorkerThread::AddHandle 之前,傳遞至這個方法的句柄和 DWORD/指標與這個對象相關聯。

範例

下列程式代碼顯示的簡單實作 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 類別