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

Confira também

CloseThreadpoolTimer

CreateThreadpoolTimer

IsThreadpoolTimerSet

Pools de threads

WaitForThreadpoolTimerCallbacks