Ich habe eine Konsolenanwendung in C # programmiert, und mein Code war wie folgt:
%Vor%Ich bemerkte, dass die Speicherauslastung meiner Anwendung ungefähr 14.000 war, während ich "schlief". Aber dann habe ich System.Windows.Forms referenziert und stattdessen einen Timer verwendet, und ich bemerkte einen enormen Abfall der Speicherauslastung.
Meine Frage ist, was ist der richtige Weg, um etwas alle paar Sekunden auszuführen, ohne so viel Speicher zu verbrauchen?
Sie sollten System.Timers.Timer
verwenden Fügen Sie eine Methode hinzu, die das Ereignis Elapsed
behandelt und den gewünschten Code ausführt. In Ihrem Fall:
Hier ist ein guter Beitrag zum Unterschied zwischen den beiden Timers
:
Sie müssen Timer
class verwenden.
Es gibt mehrere integrierte Timer ( System.Timers.Timer
, System.Threading.Timer
, System.Windows.Forms.Timer
, System.Windows.Threading.DispatcherTimer
) und es hängt von der Anforderung ab, welcher Timer verwendet werden soll.
Lesen Sie diese Antwort, um zu erfahren, wo welcher Timer verwendet werden soll.
Nachfolgend finden Sie eine interessante Lektüre.
Vergleichen der Timer-Klassen in der .NET Framework-Klassenbibliothek
Tags und Links .net c# multithreading timer