Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
IWorkerThreadClient
to interfejs implementowany przez klientów klasy CWorkerThread .
Ważne
Tej klasy i jej składowych nie można używać w aplikacjach wykonywanych w środowisko wykonawcze systemu Windows.
Składnia
__interface IWorkerThreadClient
Elementy członkowskie
Metody
Nazwa/nazwisko | opis |
---|---|
CloseHandle | Zaimplementuj tę metodę, aby zamknąć uchwyt skojarzony z tym obiektem. |
Execute | Zaimplementuj tę metodę, aby wykonać kod, gdy uchwyt skojarzony z tym obiektem zostanie zasygnalizowany. |
Uwagi
Zaimplementuj ten interfejs, gdy masz kod, który musi zostać wykonany w wątku procesu roboczego w odpowiedzi na sygnał dojścia.
Wymagania
Nagłówek: atlutil.h
IWorkerThreadClient::CloseHandle
Zaimplementuj tę metodę, aby zamknąć uchwyt skojarzony z tym obiektem.
HRESULT CloseHandle(HANDLE hHandle);
Parametry
hHandle
Uchwyt do zamknięcia.
Wartość zwracana
Zwracanie S_OK powodzenia lub błąd HRESULT po niepowodzeniu.
Uwagi
Dojście przekazane do tej metody zostało wcześniej skojarzone z tym obiektem przez wywołanie elementu CWorkerThread::AddHandle.
Przykład
Poniższy kod przedstawia prostą implementację elementu 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
Zaimplementuj tę metodę, aby wykonać kod, gdy uchwyt skojarzony z tym obiektem zostanie zasygnalizowany.
HRESULT Execute(DWORD_PTR dwParam, HANDLE hObject);
Parametry
dwParam
Parametr użytkownika.
hObject
Uchwyt, który stał się zasygnalizowany.
Wartość zwracana
Zwracanie S_OK powodzenia lub błąd HRESULT po niepowodzeniu.
Uwagi
Dojście i wskaźnik DWORD/wskaźnik przekazany do tej metody zostały wcześniej skojarzone z tym obiektem przez wywołanie metody CWorkerThread::AddHandle.
Przykład
Poniższy kod przedstawia prostą implementację elementu 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;
}