Comment puis-je trouver le processeur sur lequel mon fils est en cours d'exécution en C #?

StackOverflow https://stackoverflow.com/questions/2340727

  •  22-09-2019
  •  | 
  •  

Question

Comment puis-je trouver le processeur sur lequel mon fils est en cours d'exécution en C #?

Était-ce utile?

La solution

Ce n'est pas nécessairement une constante - le fil pourrait être prévue sur différents cœurs à travers sa vie. Vous pouvez définir des masques d'affinité pour attacher un fil particulier à un processeur particulier si vous voulez. Voir les API docs pour Thread.BeginThreadAffinity pour plus de détails sur ce qui peut être fait dans .Net.

Autres conseils

à mon humble avis, il est possible que le fil de .NET est lié à aucun des threads natifs. > Runtime NET peut déplacer les fils .NET entre les différents threads natifs et processeurs à tout moment.

Je ne suis pas sûr que vous pouvez. Vous pouvez obtenir le masque d'affinité de processus (GetProcessAffinityMask), et définir le même (SetProcessAffinityMask). Vous pouvez également définir le masque d'affinité de fil, mais je crois comprendre que, ce faisant, vous limitez le fil à courir sur l'un des processeurs que vous avez défini votre masque d'affinité.

Si vous plonger dans des threads spécifiques en cours d'exécution sur des noyaux spécifiques que vous voulez probablement définir le masque d'affinité de processus pour définir l'ensemble des noyaux votre code peut fonctionner sur, et les fils dans votre processus sera alors flotter parmi les noyaux sélectionnés.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top