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

Confira também

CloseThreadpoolTimer

CreateThreadpoolTimer

IsThreadpoolTimerSet

Pools de threads

WaitForThreadpoolTimerCallbacks