[C#] Timer macht Programm unheimlich langsam!

der jonas

Erfahrenes Mitglied
Hallo,

Also ich habe ein Programm, welches sekündlich Daten von einem Server holt und diese in eine Listbox schreibt. Bei den Daten handelt es sich lediglich um ein paar Strings dh. eine sekündliche Abfrage sollte möglich sein. Aber irgendwie wird mein Programm unheimlich langsam. Wenn ich beispielsweise auf einen Button drücke dann dauert des erst einen Moment bis auf diesen klick reagiert wird und umso höher das Intervall des Timers eingestellt ist desto länger dauert die Reaktion.

Ich erinnere mich noch dunkel, dass damals zu VB6 Zeiten in jedem Timer ein Befehl stehn musste, der quasi angibt, dass währen der Wartezeit andere Befehle ausgeführt werden sollen.

Oder hat jemand eine andere Idee woran das liegen könnte?
Ist ein Timer villt. eher nicht zu empfehlen, wenn dieser während der gesammten Programmlaufzeit laufen soll?

Gruß

Jonas
 
Ich besitze zwar nur Basics von C# aber da es sehr Java ähnlich ist hier vllt eine lösung

Eine Whileschleife mit einem Sleep verbunden:
Java:
while(Daten vorhanden){
...
Thread.sleep(1000); // In C# glaub nur Sleep(1000);
}

Ich hoffe ich hab mit dem Post nicht komplett an deiner Fragestellung vorbei geschossen =)

mfg
 
Zuletzt bearbeitet von einem Moderator:
Hallo Jonas,

ein Sekundentakt ist aus Rechnersicht eigentlich fast eine Ewigkeit, so dass der Timer selbst nicht die Bremse sein sollte. Du solltest mal versuchen einzugrenzen, was dir die Performance drückt. Also z.B. erst mal nur den Timer ohne alles laufen lassen, dann irgedwelche Dummy-Strings in die Listbox schreiben, dann die Serverabfrage dazu usw.

Gruß
MCoder
 
Wie fragst du denn die Daten vom Server ab? Benutzt du keinen eigenen Thread? Dann hängt nämlich die Oberfläche, bis der Server antwortet.
 
Ich erinnere mich noch dunkel, dass damals zu VB6 Zeiten in jedem Timer ein Befehl stehn musste, der quasi angibt, dass währen der Wartezeit andere Befehle ausgeführt werden sollen.
Application.DoEvents() ;)

Ich denke aber mal der Performance verlust ruht daher das du immer wieder die DB Verbindungen auf und zu machst.
 
Es wäre noch ganz gut zu wissen, wie du das auf der technischen Seite machst. Hast du einfach einen Timer, der jede Sekunde eine Callback-Funktion aufruft? Dann sollte es eigentlich nicht das Problem sein. Poste doch einfach mal deinen Code und dann können wir dir vielleicht besser helfen.

Grüße, Paul
 
Zurück