Timer nur einmal verwenden

8

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?

%Vor%

Bitte helfen Sie und zeigen Sie, ob es einen besseren Weg gibt, dies zu tun? Danke.

    
zaidwaqi 15.05.2010, 18:04
quelle

3 Antworten

9

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.

    
Yuriy Faktorovich 15.05.2010, 18:09
quelle
2

Setzen Sie t.Stop(); vor MessageBox.Show("Hellow World");

    
Robb 15.05.2010 18:11
quelle
1

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%     
user232548 22.06.2017 10:36
quelle

Tags und Links