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 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 ainda ocorrerão retornos de chamada já enfileirados).

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 atingir o tempo limite. 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 de espera 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 Tempos de Arquivo.

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

Reserved

Reservado. Precisa ser NULL.

Retornar valor

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

Se o estado anterior da espera for "definido" e a função retornar FALSE, um retorno de chamada estará em andamento ou prestes a começar. Confira as observações para obter mais discussões.

Comentários

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 que o sistema passa em suspensão ou hibernação não conta 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 passa 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 for ativado.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8 [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2012 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho threadpoolapiset.h
Biblioteca Kernel32.lib
DLL Kernel32.dll

Confira também

CloseThreadpoolWait

CreateThreadpoolWait

Pools de threads

WaitForThreadpoolWaitCallbacks