|
| Autor |
Nachricht |
WeeN Newbie

Anmeldedatum: 14.09.2010 Beiträge: 1
|
Timer-Event wird zweimal gefeuert
Verfasst am: 14.09.2010, 09:51 |
|
|
Bin noch im Einarbeiten in VB .Net und habe folgendes Problem:
Ich habe 3 Timer und habe eine Methode, mit der ich auf die Tick-Ereignisse der Timer reagiere.
Private Sub ResetDisplay(ByVal Timer As Object, ByVal EventArgs As EventArgs)
Handles timerReset1.Tick, timerReset2.Tick, timerReset3.Tick
Jetzt wird das Event aber zweimal kurz hintereinander abgefeuert, was eher suboptimal ist.
In New() werden die AddHandler hinzugefügt:
AddHandler timerReset1.Tick, AddressOf ResetDisplay
AddHandler timerReset2.Tick, AddressOf ResetDisplay
AddHandler timerReset3.Tick, AddressOf ResetDisplay
Derzeit behandle ich aber nur den ersten Timer.
Mein Aufruf sieht jetzt so aus, dass ich erst einmal den Intervall setze und den Timer dann mit Start() starte:
timerReset1.Interval = 5000
timerReset1.Start()
Dieser Code wird derzeit ausgelöst, wenn ich auf einen Button klicke (soll später mit einem Event aufgerufen werden)
Mein derzeitiger Code in der ResetDisplay ist folgender:
TryCast(Timer, Timer).Stop()
Console.WriteLine("Tick-Ereignis ausgelöst!")
Ich hatte vorher eine MessageBox, hatte dann aber in der MSDN gelesen, das im Debug mit einer MessageBox das Event womöglich 2-mal gefeuert wird. Hab es jetzt mit dem Code ersetzt, aber es läuft immer noch zweimal ab. Wird irgendwo das Event 2-mal verarbeitet oder sowas? Wäre für mögliche Hinweise dankbar. |
|
| |
|
 |
PokemonProgrammierer Newbie

Anmeldedatum: 23.07.2010 Beiträge: 14
|
Verfasst am: 21.09.2010, 21:18 |
|
|
Vielleicht hilft dir das weiter. Zumindest ist das der Code in Vb6.
Du könntest alle Timer auf False setzen den Inteval ändern und dann wieder auf True. Und
falls du möchtest das der Timer nur begenzt läuft machst du ein Modul
Und dann schreibst du in den (bzw. die) Timer:
| Code: |
If zaehler = 1 then Timer1.Enabled = False 'oder Exit Sub
zaehler = zaehler + 1
|
Nein danke, ich kaufe nichts! |
|
| |
|
 |
|
|