Compartilhar via


Função SetThreadpoolWaitEx (threadpoolapiset.h)

Define o objeto de espera, substituindo o objeto de espera anterior, se houver. Um thread de trabalho chama a função de retorno de chamada do objeto de espera depois que o identificador é sinalizado ou após o tempo limite especificado expirar.

Sintaxe

BOOL SetThreadpoolWaitEx(
  [in, out]      PTP_WAIT  pwa,
  [in, optional] HANDLE    h,
  [in, optional] PFILETIME pftTimeout,
                 PVOID     Reserved
);

Parâmetros

[in, out] pwa

Um ponteiro para uma estrutura de TP_WAIT que define o objeto de espera. A função CreateThreadpoolWait retorna esse ponteiro.

[in, optional] h

Um identificador.

Se esse parâmetro for NULL, o objeto de espera deixará de enfileirar novos retornos de chamada (mas os retornos de chamada já enfileirados ainda ocorrerão).

Se esse parâmetro não for NULL, ele deverá se referir a um objeto de espera válido.

Se esse identificador estiver fechado enquanto a espera ainda estiver pendente, o comportamento da função será indefinido. Se a espera ainda estiver pendente e o identificador precisar ser fechado, use CloseThreadpoolWait para cancelar a espera e, em seguida, feche o identificador.

A espera será considerada definida se esse parâmetro não for NULL.

[in, optional] pftTimeout

Um ponteiro para uma estrutura FILETIME que especifica o tempo absoluto ou relativo em que a operação de espera deve acabar. Se esse parâmetro apontar para um valor positivo, ele indicará o tempo absoluto desde 1º de janeiro de 1601 (UTC), em intervalos de 100 nanossegundos. Se esse parâmetro apontar para um valor negativo, ele indicará a quantidade de tempo para aguardar em relação à hora atual. Se esse parâmetro apontar para zero, a espera atingirá o tempo limite imediatamente. Para obter mais informações sobre valores de tempo, consulte Os Tempos de Arquivo.

Se esse parâmetro for NULL, a espera não atingiu o tempo limite.

Reserved

Reservado. Deve ser NULL.

Valor de retorno

Retorna TRUE se a espera foi definida anteriormente e foi cancelada. Caso contrário, retornará FALSE.

Se o estado anterior da espera foi "definido" e a função retorna FALSE, um retorno de chamada está em andamento ou prestes a começar. Consulte as observações para mais discussões.

Observações

Um objeto de espera pode aguardar apenas um identificador. Definir o identificador de um objeto de espera substitui o identificador de espera anterior, se houver.

Em alguns casos, as funções de retorno de chamada podem ser executadas depois que um aplicativo fecha o temporizador do threadpool. Para evitar esse comportamento, um aplicativo deve seguir as etapas descritas em CloseThreadpoolWait.

Se o tempo limite especificado por pftTimeout for relativo, o tempo gasto pelo sistema em suspensão ou hibernação não contará para a expiração da espera. A espera é sinalizada quando a quantidade cumulativa de tempo decorrido que o sistema passa no estado de vigília é igual ao tempo limite relativo da espera. Se o tempo limite especificado por pftTimeout for absoluto, o tempo que o sistema gasta em suspensão ou hibernação conta para a expiração da espera. Se a espera expirar enquanto o sistema estiver em suspensão, a espera será sinalizada imediatamente quando o sistema é ativado.

Requirements

Requirement Value
Cliente mínimo suportado Windows 8 [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo compatível Windows Server 2012 [aplicativos da área de trabalho | Aplicativos UWP]
da Plataforma de Destino Windows
Header threadpoolapiset.h
Library Kernel32.lib
de DLL Kernel32.dll

Consulte também

CloseThreadpoolWait

CreateThreadpoolWait

Pools de threads

WaitForThreadpoolWaitCallbacks