Performanceplus mittels Threads?

sra

Erfahrenes Mitglied
Hallo

Ich muss zugeben ich habe mich erst grob mit Threads auseinandergesetzt, und ich will auch gar nicht wissen wie man sie einsetzt (dafür gibts google). Ich würde jedoch gerne von jemandem der vielleicht schon mal Threads benutzt hat, ob es sich für mein Programm lohnen würde.

Ich habe ein Tool geschrieben, mit welchem man Bilder in ASCII-Bilder umwandeln kann. Mein Problem ist, dass es recht langsam ist, und das Fenster einfriert bis ich mit der Berechnung fertig bin. Im Quellcode habe ich 4 for-schleifen ineinander, und zwei weitere dazwischen.

Dass das Fenster nicht einfriert weiss ich, das kann man mit Threads machen. Ich wollte jedoch noch wissen, ob ich die Performance (also die Dauer der Berechnung des ASCII Bildes) signifikant beschleunigen kann, und wie ich das am besten mache (wo macht ein eigener Thread Sinn?).

Falls es euch hilft, dann poste ich auf Anfrage noch den Code (ist nicht allzu gross).

Danke für eure Antworten
sra
 
Hallo sra!

Ließ dir doch mal bitte einen [post=1030481]Post[/post] zum Thema vom mir durch.

Das dein Proggi einfriert ist nicht besonders hilfreich.
Sowieso weiß man nicht mal wie weit der Prozess vorrangeschritten ist.
Das ist keinem User zuzumuten (!)
Wenn Du einen einfachen WorkerThead brauchst, der seinen aktuellen Status
zu einem oder meheren Controls via Events in ein Stack o. Queue reportet,
kannst Dir das WorkerThread Starter Kit aus dem Post anschauen.
Die Performance könnte sich geringfügig steigern, wenn Du mehere Threads verwendest
und diese sich gegenseitig die Zwischenergebnisse zureichen.
Das ganze musst Du dann noch synchronisieren.

MfG, cosmo
 
Es gib noch eine möglichkeit in die Schleifen Application.DoEvent() einzufügen. Am besten aber nich in die oberste Schleife nehmen sondern eine die selterner als ständig aufgerufen wird.
 

Neue Beiträge

Zurück