Process.ProcessorAffinity Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Obtém ou define os processadores onde os threads deste processo podem ser agendados para correr.
public:
property IntPtr ProcessorAffinity { IntPtr get(); void set(IntPtr value); };
public IntPtr ProcessorAffinity { get; set; }
member this.ProcessorAffinity : nativeint with get, set
Public Property ProcessorAffinity As IntPtr
Valor de Propriedade
nativeint
Uma máscara de bits que representa os processadores onde as threads do processo associado podem correr. O padrão depende do número de processadores no computador. O valor padrão é 2 n -1, onde n é o número de processadores.
Exceções
ProcessorAffinity a informação não podia ser definida ou recuperada do recurso de processo associado.
-ou-
O identificador do processo ou handle de processo é zero. (O processo ainda não foi iniciado.)
Está a tentar aceder à ProcessorAffinity propriedade de um processo que está a correr num computador remoto. Esta propriedade está disponível apenas para processos que estão a correr no computador local.
Observações
O valor devolvido por esta propriedade representa a afinidade mais recentemente renovada do processo. Para obter a afinidade mais atualizada, precisa de ligar Refresh() primeiro ao método.
No Windows 2000 e posteriores, um thread num processo pode migrar de processador para processador, com cada migração a recarregar a cache do processador. Sob cargas elevadas do sistema, especificar qual o processador que deve executar uma thread específica pode melhorar o desempenho ao reduzir o número de vezes que a cache do processador é recarregada. A associação entre um processador e uma thread chama-se afinidade de processador.
Cada processador é representado como um bit. O bit 0 é o processador um, o bit 1 é o processador dois, e assim sucessivamente. Se definir um bit para o valor 1, o processador correspondente é selecionado para atribuição de threads. Quando defines o ProcessorAffinity valor a zero, os algoritmos de agendamento do sistema operativo definem a afinidade do thread. Quando o ProcessorAffinity valor é definido para qualquer valor diferente de zero, o valor é interpretado como uma máscara de bits que especifica os processadores elegíveis para seleção.
A tabela seguinte mostra uma seleção de ProcessorAffinity valores para um sistema com oito processadores.
| Bitmask | Valor binário | Processadores elegíveis |
|---|---|---|
| 0x0001 | 00000000 00000001 | 1 |
| 0x0003 | 00000000 00000011 | 1 e 2 |
| 0x0007 | 00000000 00000111 | 1, 2 e 3 |
| 0x0009 | 00000000 00001001 | 1 e 4 |
| 0x007F | 00000000 01111111 | 1, 2, 3, 4, 5, 6 e 7 |