[C#] Maximale Performence bei TEXTEN

Blackhawk50000

Erfahrenes Mitglied
Hallo, ich würde sehr gerne eine Maximale Percormence rausholen und zwar bei einer Endlosschleife in der art
Code:
while(true)
{
 steuerelement.appendtext("Hallo" + i);
i++;
}

Bei einer Console gibt das einen wunderschönen Effekt. Aber ich habe es auch mit einer textbox versucht. Der Effekt ist nichts dagegen. Nun würde ich gerne wissen was man machen kann um sowas rasend schnell aus zu geben damit das menschliche Auge nicht hinter her kommt.

hat jemand ne idee?
 
Gibt es ein Steuerelement, dass es mit der Schnelligkeit in sachen Textausgabe mit der Console aufnehmen kann oder eine Möglichkeit diese Schnelligkeit zu erreichen?
 
Hallo Blackhawk50000,

möglich ist das im Prinzip schon, nämlich per zusätzlichem Thread. Bei Dir wird es nämlich vermutlich aktuell so laufen, dass er mit dem Zeichnen gar nicht nachkommt, weil die Endlosschleife den Render-Thread blockiert.

Allerdings stellt sich hier - im Gegensatz zur Konsole - das Problem von Pufferüberläufen, ungültigen Thread-Zugriffen, Zerstörung von Handles zum falschen Zeitpunkt etc. D.h. also, es könnte etwas aufwändiger werden.

Alternativ: Versuche Dich, falls Du bereits etwas fortgeschrittener bist, an einem eigenen Steuerelement, das Du wahlweise mit GDI+ oder gar DirectX für noch höhere Performance zeichnest und dort das ganze Handling übernimmst. Ansonsten würde ich vorschlagen, dass Du das Ganze für die Konsole lässt und Dir lieber Tutorials zur .NET Windows-Programmierung zu Gemüte führst.

Gruß
PhoenixLoe
 
danke für die antwort das klingt schon mal ganz super =)
ich habe mir auch gedacht, das das ganze doch eigentlich schneller laufen müsste wenn man bedenkt das ne crysis grafic + physik+ shader+ bumpmapping sooo schnell berechnet werden kann, und dieser poblige text so langsam ist.

Also ich stelle mal meine beiden vergleichsProgramme online (nur die exe)

einmal die Console und die Form (bei der konsole ist n kleines menü mit eingebaut, einfach duchtippen und die endlosschleife ist dann schon deutlich zu erkennen)



nun zum direktx das hört sich sehr interessant an. gibt es dafür tutorials. ich möchte ich UNBEDINGT sagen das ich n BLUTIGER anfänger bin, aber wissen wie es geht muss ich es schon =)
 
Hallo Blackhawk50000,

Tutorials dazu gibt's wie Sand am Meer. Zwar sind die meisten in C# geschrieben, allerdings sind sich die Sprachen VB und C# mittlerweile so ähnlich, dass die Übersetzung kein Problem darstellen sollte. Zur Einführung empfehle ich die Webcasts von Microsoft:
http://www.microsoft.com/germany/msdn/webcasts/serien/MSDNWCS-0503-01.mspx

Weiterhin benötigst Du Tutorials über das Rendering von Texten und weiteren Grafiken:Per Google lassen sich noch zahlreiche weitere Tutorials finden. Stichworte wie "VB DirectX Tutorials" führen zu zahlreichen Ergebnissen.

Ich will Dich allerdings darauf hinweisen, dass Du erst Visual Basic bzw. C# an sich grundlegend beherrschen solltest, bevor Du Dich auf diese fortgeschrittenen Themen stürzt. Als kleiner Tipp: Suche Dir eine gute Referenz zu VB.NET (meinetwegen sogar die MSDN) und schaue Dir die DirectX-Quellcodes auf den oben genannten Seiten an. Schlage alles nach, was Du nicht auf Anhieb verstehst und versuche es nachzuvollziehen. Dann sollte das Lernen eigentlich keine großen Probleme bereiten.

Falls Du noch Fragen hast, frag einfach. ;-)

Gruß
PhoenixLoe

PS: Dass Crysis so schnell ist, liegt an der Schnelligkeit heutiger Grafikkarten. Text ist also ein eigenes Kapitel, weil er vom Prozessor verarbeitet werden muss, und damit mit Grafiken und Physik-Engines kaum zu vergleichen.
 

Neue Beiträge

Zurück