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

ReleaseSemaphoreWhenCallbackReturns

SetEventWhenCallbackReturns

SetThreadpoolCallbackRunsLong

Pools de threads

TrySubmitThreadpoolCallback