C#.net Performance Probleme
-
Guten Tag,
ich mache zurzeit in C# mit .NET ein Spiel für die Schule, doch ich habe ordentlich Performance Probleme, und zwar brauchen meine Grafiken, auch wenn sie im Resources Ordner liegen ziehmlich lange zum laden, auch beim MouseHover ( 1sek )... Bisher sinds über 60 Grafiken, aber die meisten sind nur 2-3 KB groß, wie kann ich die Performance eines Programmes steigern?
-
Dieser Thread wurde von Moderator/in Marc++us aus dem Forum C++/CLI mit .NET in das Forum C# und .NET verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Es gibt sehr viele ecken und Stellen wo die WPF Performance leidet.
Am besten jagst du erst einmal ein Profiler drüber und schaust wo das Problem sein kann.
-
WinForms oder WPF? Wie lädst du die Daten? Eingebettet oder nicht? Kannst du die Bilder cachen? Welche .NET-Version verwendest du?
Ach ja, der Profiler von EQATEC ist ganz brauchbar
-
Kann aber auch sein, wenn er ein Spiel programmieren möchte, dass er XNA benutzt.
-
Und wenn er es nicht nutzt, dann sollte er sich XNA mal ansehen:
http://de.wikipedia.org/wiki/XNA_(Microsoft)
-
Ok, vielen dank, das hat soweit geklappt... liegt also daran dass alles zu oft repaintet wird nehme ich an...
Jetzt hab ich allerdings noch das selbe problem bei meiner eigentlichen spielfläche:
Das spiel ist eine art puzzlespiel.
Jedes Puzzleteil wird durch eine Picturebox dargestellt.
Um dem Spieler zu zeigen wo er sein aktuelles Puzzleteil anlegen könnte werden PictureBoxen dorthingelegt wo ein teil sein könnte.
d.h. nach jedem spielzug werden diese temorären markierungen wieder gelöscht und neue erstellt -> massig repaints durch das löschen und hinzufügen von pictureboxen...Jetzt meine Frage:
Kann ich unterdrücken dass meine form ständig repaintet wird und sie erst manuell repainten wenn alles fertig berechnet ist?
-
n3oth3on3 schrieb:
Jetzt meine Frage:
Kann ich unterdrücken dass meine form ständig repaintet wird und sie erst manuell repainten wenn alles fertig berechnet ist?Du zeichnest zuerst alles ion eine Bitmap und immer wenn die Form neuzeichnen möchte "kopierst" du das bild aus der Bitmap. Also "Cachen".
Sonst musst du ja auch nur das neuzeichen was sich wirklich verändert hat und nicht alles.
-
Das Problem ist, das Spiel ist eher ein legespiel, die Karten werden von dem Spieler immer irgendwo hingelegt... Das ist zurzeit mein einzigstes Problem, die Karten brauchen einfach zulange zum laden...