Função SetThreadpoolTimerEx (threadpoolapiset.h)
Define o objeto timer, substituindo o temporizador anterior, se houver. Um thread de trabalho chama o retorno de chamada do objeto de temporizador após o tempo limite especificado expirar.
Sintaxe
BOOL SetThreadpoolTimerEx(
[in, out] PTP_TIMER pti,
[in, optional] PFILETIME pftDueTime,
[in] DWORD msPeriod,
[in, optional] DWORD msWindowLength
);
Parâmetros
[in, out] pti
Um ponteiro para uma estrutura TP_TIMER que define o objeto de temporizador a ser definido. A função CreateThreadpoolTimer retorna esse ponteiro.
[in, optional] pftDueTime
Um ponteiro para uma estrutura FILETIME que especifica o tempo absoluto ou relativo em que o temporizador deve expirar. Se esse parâmetro apontar para um valor positivo, ele indicará o tempo absoluto desde 1º de janeiro de 1601 (UTC), medido em 100 unidades 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, o temporizador expirará imediatamente. Para obter mais informações sobre valores de tempo, consulte Tempos de Arquivo.
Se esse parâmetro for NULL, o objeto timer deixará de enfileirar novos retornos de chamada (mas os retornos de chamada já enfileirados ainda ocorrerão).
O temporizador será definido se o parâmetro pftDueTime não for NULL.
[in] msPeriod
O período do temporizador, em milissegundos. Se esse parâmetro for zero, o temporizador será sinalizado uma vez. Se esse parâmetro for maior que zero, o temporizador será periódico. Um temporizador periódico reativa automaticamente cada vez que o período passa, até que o temporizador seja cancelado.
[in, optional] msWindowLength
A quantidade máxima de tempo que o sistema pode atrasar antes de chamar o retorno de chamada do temporizador. Se esse parâmetro for definido, o sistema poderá enviar chamadas em lote para economizar energia.
Retornar valor
Retorna TRUE se o temporizador foi definido anteriormente e foi cancelado. Caso contrário, retornará FALSE.
Se o estado anterior do temporizador 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
Definir o temporizador cancela o temporizador 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 CloseThreadpoolTimer.
Se o tempo de vencimento especificado por pftDueTime for relativo, o tempo que o sistema gasta em suspensão ou hibernação não conta para a expiração do temporizador. O temporizador é sinalizado quando a quantidade cumulativa de tempo decorrido que o sistema passa no estado de ativação é igual ao tempo de vencimento ou período relativo do temporizador. Se o tempo de conclusão especificado por pftDueTime for absoluto, o tempo que o sistema gasta em suspensão ou hibernação conta para a expiração do temporizador. Se o temporizador expirar enquanto o sistema estiver em suspensão, o temporizador será sinalizado imediatamente quando o sistema é ativado.
Para compilar um aplicativo que usa essa função, defina _WIN32_WINNT como 0x0600 ou superior.
Exemplos
Para obter um exemplo, consulte Usando as funções do pool de threads.
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 |