Compartilhar via


Função SetThreadIdealProcessor (processthreadsapi.h)

Define um processador preferencial para um thread. O sistema agenda threads em seus processadores preferenciais sempre que possível.

Em um sistema com mais de 64 processadores, essa função define o processador preferencial como um processador lógico no grupo de processadores ao qual o thread de chamada é atribuído. Use a função SetThreadIdealProcessorEx para especificar um grupo de processadores e um processador preferencial.

Sintaxe

DWORD SetThreadIdealProcessor(
  [in] HANDLE hThread,
  [in] DWORD  dwIdealProcessor
);

Parâmetros

[in] hThread

Um identificador para o thread cujo processador preferencial deve ser definido. O identificador deve ter o acesso de THREAD_SET_INFORMATION correto. Para obter mais informações, consulte Segurança de thread e direitos de acesso.

[in] dwIdealProcessor

O número do processador preferencial para o thread. Esse valor é baseado em zero. Se esse parâmetro for MAXIMUM_PROCESSORS, a função retornará o processador ideal atual sem alterá-lo.

Retornar valor

Se a função for bem-sucedida, o valor retornado será o processador preferencial anterior.

Se a função falhar, o valor retornado será (DWORD) – 1. Para obter informações de erro estendidas, chame GetLastError.

Comentários

Você pode usar a função GetSystemInfo para determinar o número de processadores no computador. Você também pode usar a função GetProcessAffinityMask para marcar os processadores nos quais o thread tem permissão para ser executado. Observe que GetProcessAffinityMask retorna uma máscara de bits, enquanto SetThreadIdealProcessor usa um valor inteiro para representar o processador.

A partir do Windows 11 e do Windows Server 2022, em um sistema com mais de 64 processadores, as afinidades de processo e thread abrangem todos os processadores do sistema, em todos os grupos de processadores, por padrão. A função SetThreadIdealProcessor define o processador preferencial como um processador lógico no grupo primário do thread.

Para compilar um aplicativo que usa essa função, defina _WIN32_WINNT como 0x0400 ou posterior. Para obter mais informações, consulte Usando os cabeçalhos do Windows.

Windows 8.1 e Windows Server 2012 R2: essa função tem suporte para aplicativos da Windows Store em Windows 8.1, Windows Server 2012 R2 e posteriores.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [aplicativos da área de trabalho | aplicativos UWP]
Servidor mínimo com suporte Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho processthreadsapi.h (inclua Windows.h)
Biblioteca Kernel32.lib
DLL Kernel32.dll

Confira também

GetProcessAffinityMask

Getsysteminfo

Vários processadores

OpenThread

Funções de thread e processo

SetThreadAffinityMask

SetThreadIdealProcessorEx

Threads