Função CallbackMayRunLong (threadpoolapiset.h)
Indica que o retorno de chamada pode não retornar rapidamente.
Sintaxe
BOOL CallbackMayRunLong(
[in, out] PTP_CALLBACK_INSTANCE pci
);
Parâmetros
[in, out] pci
Um ponteiro para uma estrutura TP_CALLBACK_INSTANCE que define a instância de retorno de chamada. O ponteiro é passado para a função de retorno de chamada.
Retornar valor
A função retornará TRUE se outro thread no pool de threads estiver disponível para processar retornos de chamada ou se o pool de threads puder criar um novo thread. Nesse caso, a função de retorno de chamada atual pode usar o thread atual indefinidamente.
A função retornará FALSE se outro thread no pool de threads não estiver disponível para processar retornos de chamada e o pool de threads não puder criar um novo thread. O pool de threads tentará criar um novo thread após um atraso, mas se a função de retorno de chamada atual for executada por muito tempo, o pool de threads poderá perder eficiência.
Comentários
O pool de threads pode usar essas informações para determinar melhor quando um novo thread deve ser criado.
A função CallbackMayRunLong deve ser chamada apenas pelo thread que está processando o retorno de chamada. Chamar essa função de outro thread pode causar uma condição de corrida.
A função CallbackMayRunLong sempre marca o retorno de chamada como de execução longa, se um thread está disponível ou não para processar retornos de chamada ou se o threadpool é capaz de alocar um novo thread. Portanto, essa função deve ser chamada apenas uma vez, mesmo que retorne FALSE.
Para compilar um aplicativo que usa essa função, defina _WIN32_WINNT como 0x0600 ou superior.
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
DisassociateCurrentThreadFromCallback
FreeLibraryWhenCallbackReturns
LeaveCriticalSectionWhenCallbackReturns
ReleaseMutexWhenCallbackReturns