2009-11-22 15 views
11

Sono curioso di sapere cosa restituisce effettivamente la proprietà .NET Environment.ProcessorCount. Restituisce il numero di core, il numero di processori o entrambi? Se il mio computer avesse 2 processori, ciascuno con 4 core, Environment.ProcessorCount restituirà 2, 4 o 8?Domanda su Environment.ProcessorCount

+2

vedere http://stackoverflow.com/questions/188503/detecting-the-number-of-processors – adrianbanks

risposta

15

Restituirà la variabile di ambiente NUMBER_OF_PROCESSORS. (Vedi MSDN)

Questo sarà uguale al numero di core logici - cioè se si dispone di un HT abilitato processore single core, ritornerà 2.

Nel suo caso, deve restituire 8.

Sarà lo stesso numero del numero di grafici di utilizzo della CPU che vedrai nel task manager.

+0

Ciò è completamente falso. Se si modifica la variabile di ambiente e quindi si avvia un'app dallo stesso ambiente di quella che si modifica la variabile, si otterrà comunque il numero reale di processore logico. Come nota a margine: non è sempre vero in certi casi che sto cercando - correlato all'hyper threading (Environment.ProcesserCount non prende in considerazione l'Hyper Threading su un server che abbiamo). –

+0

Sono stato veloce. Cerco di annullare ma non posso. Non ho visto le informazioni in MSDN e infatti non c'era quando ho controllato. Ma mi sono reso conto un'ora dopo che era lì per la versione 4.0 del framework, ma il tuo link è stato probabilmente reindirizzato automaticamente a 4.5. Non posso annullare! –

4

Restituisce il numero di processori logici, quindi 8 nell'esempio.

0

Se il mio computer aveva 2 processori, ciascuno con 4 core, sarebbe Environment.ProcessorCount ritorno 2, 4, o 8?

Restituisce 8, nel mio caso comunque. (Core i7 860 CPU).