Ich möchte einen Timer nur einmal verwenden, 1 Sekunde nach der Initialisierung meines Hauptformulars. Ich dachte, das folgende würde nur einmal ein Nachrichtenfeld mit der Aufschrift "Hello World" haben, aber tatsächlich erscheint jede Sekunde eine neue Nachrichtenbox mit "Hello World".
Warum? Ich hatte t.Stop()
in das Tick-Event gesetzt.
Muss ich den Timer irgendwie entfernen, um Speicherverlust zu vermeiden?
Bitte helfen Sie und zeigen Sie, ob es einen besseren Weg gibt, dies zu tun? Danke.
Ersetzen Sie MessageBox.Show("Hello World"); t.Stop();
durch t.Stop();MessageBox.Show("Hello World");
. Da du nicht rechtzeitig auf OK drückst, hat der Timer bereits wieder angekreuzt und du hast den Stop-Code nie erreicht.
Sie können dies auch mit System.Timers.Timer erreichen und AutoReset auf false setzen. Ich habe untersucht, welcher Timer zu verwenden ist und bevorzuge diesen, da es keinen separaten Stoppbefehl benötigt.
%Vor%