Função SetThreadpoolTimer (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
void SetThreadpoolTimer(
[in, out] PTP_TIMER pti,
[in, optional] PFILETIME pftDueTime,
[in] DWORD msPeriod,
[in] 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 positivo ou zero, indica o tempo absoluto desde 1º de janeiro de 1601 (UTC), medido em 100 unidades de nanossegundos. Se negativo, indica a quantidade de tempo a aguardar em relação à hora atual. 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] 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 não estiver definido como zero, o sistema poderá enviar chamadas em lote para economizar energia.
Retornar valor
Nenhum
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.
Se o tempo de conclusão especificado por pftDueTime for zero, o temporizador expirará imediatamente.
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 Vista [aplicativos da área de trabalho | Aplicativos UWP] |
Servidor mínimo com suporte | Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP] |
Plataforma de Destino | Windows |
Cabeçalho | threadpoolapiset.h (inclua Windows.h no Windows 7, Windows Server 2008 Windows Server 2008 R2) |
Biblioteca | Kernel32.lib |
DLL | Kernel32.dll |