Cosa posso fare per rendere la mia C # applicazione sfruttare più core del processore?
-
09-10-2019 - |
Domanda
Ho fatto alcune prove sul modo in cui un # NET C utilizza le risorse, come la CPU o memoria. Ho scritto alcuni loop che i valori di calcolare per una grande quantità di numeri e sono soddisfatto con il peso dell'algoritmo.
Ho un Quad Core da 2,4 GHz, ma ho notato che in Task Manager, la mia domanda è solo utilizzando il 25% del mio CPU. Perché non è vero utilizzando il 100%? Questo significa che un .NET C # applicazione compilata in VS 2008 supporta solo Single Core CPU? O c'è un modo che posso forzarlo ad utilizzare tutte le CPU?
Soluzione 4
Che dire se l'uso di fondo di lavoro, se ho CPU Quad Core 4 CPU Qualcuno può scrivere un esempio di come potrebbe reagire @ che la CPU?
Altri suggerimenti
Tutto dipende da come è possibile modificare il codice per utilizzare più di un core.
A meno che non si sta facendo le operazioni multi-threaded in parallelo o, quindi il programma non utilizzare più di un core.
.NET 4 ha una biblioteca che può aiutare a: Parallel LINQ. Per ulteriori informazioni si veda questa pagina: http://msdn.microsoft.com/en- us / library / dd997425.aspx
Sarà eseguito a 1 nucleo meno di iniziare specificatamente qualche threading.
Il modo più semplice è quello di spingere un metodo sul ThreadPool.
System.Threading.ThreadPool.QueueUserWorkItem(DoSomething);
void DoSomething() { ... }
Usa .NET 4.0
TaskLibrary
che è stato progettato per beneficiare multi-core processori.