Hallo zusammen.
Ich schreibe gerade eine kleine Applikation in VB 2008 (.NET 3.5 SP1).
Dort nutze ich den System.Timers.Timer, um alle paar Sekunden Berechnungen durchzuführen.
Anschließend aktualisiere ich mittels Control.Invoke() das UI, da Timers.Timer ja in einem separaten Thread läuft.
Nun habe ich im Taskmanager beobachtet, dass bei jedem Elapsed die Anzahl der Handles steigt.
In einem relativ großen Programm (eine Art Engine), das in C# geschrieben ist, habe ich das gleiche Muster (Timers.Timer + Invoke) und auch das selbe verhalten.
Ich konnte das auf Invoke() isolieren, denn wenn ich BeginInvoke() nutze bleibt die Zahl der Handles konstant.
Allerdings muss ich dann noch mit einer Schleife und Sleep() warten und das ist unschön.
Weiß jemand woran das liegt? Und kann man das beheben oder muss ich bei BeginInvoke() bleiben?
Viele Grüße, Phil.
Ich schreibe gerade eine kleine Applikation in VB 2008 (.NET 3.5 SP1).
Dort nutze ich den System.Timers.Timer, um alle paar Sekunden Berechnungen durchzuführen.
Anschließend aktualisiere ich mittels Control.Invoke() das UI, da Timers.Timer ja in einem separaten Thread läuft.
Nun habe ich im Taskmanager beobachtet, dass bei jedem Elapsed die Anzahl der Handles steigt.
In einem relativ großen Programm (eine Art Engine), das in C# geschrieben ist, habe ich das gleiche Muster (Timers.Timer + Invoke) und auch das selbe verhalten.
Ich konnte das auf Invoke() isolieren, denn wenn ich BeginInvoke() nutze bleibt die Zahl der Handles konstant.
Allerdings muss ich dann noch mit einer Schleife und Sleep() warten und das ist unschön.
Weiß jemand woran das liegt? Und kann man das beheben oder muss ich bei BeginInvoke() bleiben?
Viele Grüße, Phil.