Benutzer mit den meisten Antworten
Debug, Release Prozessoren

Frage
-
Hallo Mitglieder und Freunde des VS.
Ich bin dieser Community ganz neu beigetreten, weil ich mit einem Problem nicht weiterkomme.
Installiert habe ich VS Prof. 2015 und habe mit C# und WPF eine kleine Animation geschrieben, die auch ganz gut läuft.
Das Problem ist, auf meinem großen Rechner werden beim Release oder Debugen alle Prozessoren angesprochen. Wenn ich es auf einem anderen Rechner laufen lasse, dann wird hauptsächlich nur noch ein Prozessor angesprochen, was die Anwendung zum ruckeln bringt.
Kann mir jemand sagen, was ich machen muss, damit meine Anwendung auf allen Rechnern auf alle zur Verfügung stehenden Prozessoren zugreift?
Danke schon mal an die Gemeinde.
Antworten
-
Hallo Peter,
Alle Anwendungen mit User Interface laufen grundsätzlich nur auf einem Thread und somit nur auf einem Prozessor. Wenn Du willst, dass Deine Anwendung auf mehreren Prozessoren läuft, dann musst Du Teile der Verarbeitung auslagern. Das geht in der WPF zum Beispiel mit dem BackgroundWorker, async-await oder der Task Parallel Library (TPL).
Einen Knopf, der die Anwendung auf allen Prozessoren ausführt gibts leider nicht.
BackgroundWorker:
https://coders-corner.net/2013/02/05/multithreading-in-c-teil-4-individualisierter-backgroundworker/
Async-await:
https://msdn.microsoft.com/de-de/library/hh191443.aspx
TPL:
https://stefanhenneken.wordpress.com/2012/08/19/tpl-teil-1-einfhrung/
Gruss MMM
PS: Please mark as answer if helpful. Thanks!
Blog: http://www.manuelmeyer.net
Twitter: https://twitter.com/manumeyer1- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Montag, 6. Juni 2016 06:40
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Mittwoch, 15. Juni 2016 07:59
Alle Antworten
-
Hallo Peter,
Alle Anwendungen mit User Interface laufen grundsätzlich nur auf einem Thread und somit nur auf einem Prozessor. Wenn Du willst, dass Deine Anwendung auf mehreren Prozessoren läuft, dann musst Du Teile der Verarbeitung auslagern. Das geht in der WPF zum Beispiel mit dem BackgroundWorker, async-await oder der Task Parallel Library (TPL).
Einen Knopf, der die Anwendung auf allen Prozessoren ausführt gibts leider nicht.
BackgroundWorker:
https://coders-corner.net/2013/02/05/multithreading-in-c-teil-4-individualisierter-backgroundworker/
Async-await:
https://msdn.microsoft.com/de-de/library/hh191443.aspx
TPL:
https://stefanhenneken.wordpress.com/2012/08/19/tpl-teil-1-einfhrung/
Gruss MMM
PS: Please mark as answer if helpful. Thanks!
Blog: http://www.manuelmeyer.net
Twitter: https://twitter.com/manumeyer1- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Montag, 6. Juni 2016 06:40
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Mittwoch, 15. Juni 2016 07:59
-
Hallo Manuel,
erst mal vielen Dank für die schnelle Antwort. Ich werde mir Deine Hinweise (hoffe ich) heute Abend mal anschauen.
Ich befürchte, dass Du Recht hast wenn Du sagst, ich muss mich um Auslastung selbst kümmern. Was mich aber wundert, ist, dass auf meinem Rechner zu Hause die Aufteilung automatisch erfolgt.
Jetzt muss ich mir das heute Abend erst mal anschauen.
gruss
peter
-
Hi Peter,
kann es sein, dass Du auf Deinem Rechner das Programm nur unter Steuerung des Visual Studios bewertet hast?--
Viele Grüsse
Peter Fleischer (MVP, Partner)
Meine Homepage mit Tipps und Tricks
Kommas richtig setzen!
Schüler sagen, Lehrer haben es gut.
Schüler, sagen Lehrer, haben es gut -
Hallo Peter,
Es wird nicht so sein, dass die Anwendung bei Dir auf mehreren Prozessoren läuft. Das müssen andere Prozesse sein, die Du da siehst. Die Anwendung läuft immer nur auf einem, egal auf welchem Rechner.
Gruss MM
PS: Please mark as answer if helpful. Thanks!
Blog: http://www.manuelmeyer.net
Twitter: https://twitter.com/manumeyer1