Compartilhar via


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 de 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 nanossegundos. Se negativo, indica a quantidade de tempo a aguardar em relação ao tempo atual. Para obter mais informações sobre valores de tempo, consulte Os Tempos de Arquivo.

Se esse parâmetro for NULL, o objeto de temporizador 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

O tempo máximo 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.

Valor de retorno

None

Observações

A configuração do 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 conclusão especificado por pftDueTime for relativo, o tempo que o sistema passa 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 vigília é 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 Como usar as funções do pool de threads.

Requirements

Requirement Value
Cliente mínimo suportado Windows Vista [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo compatível Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP]
da Plataforma de Destino Windows
Header threadpoolapiset.h (inclua Windows.h no Windows 7, Windows Server 2008 Windows Server 2008 R2)
Library Kernel32.lib
de DLL Kernel32.dll

Consulte também

CloseThreadpoolTimer

CreateThreadpoolTimer

IsThreadpoolTimerSet

Pools de threads

WaitForThreadpoolTimerCallbacks