So che sembra stupido, ma ho provato di tutto per fermare un timer, ma il timer non si fermerà. Sto lavorando a un gioco e sarei grato se qualcuno potesse dirmi come fermare un timer.C# - come si ferma un timer?
risposta
se si utilizza System.Timers.Timer
si può fermare in questo modo
timer.Enabled = false
se si utilizza System.Threading.Timer
, utilizzare questo
timer.Change(Timeout.Infinite , Timeout.Infinite)
Oppure utilizzare
timer.Stop();
se si utilizza System.Windows.Forms.Timer
Supponendo che si stia utilizzando System.Windows.Forms.Timer; poiché non vi era alcun riferimento esplicito a qualsiasi altra cosa ... se questo è il caso ...
System.Windows.Forms.Timer myTimer = new System.Windows.Forms.Timer();
myTimer.Stop();
System.Windows.Forms.Timer: timer.Enabled = false;
System.Threading.Timer: timer.Change(Timeout.Infinite, Timeout.Infinite);
System.Timers.Timer: timer.Enabled = false;
o timer.Stop();
Con ciascuno dei temporizzatori nel framework .NET, è possibile che il timer si accenda appena prima di fermarlo, quindi vedrai la richiamata dopo averla interrotta.
Avrete bisogno di usare qualcosa come un asynchronous callback context: utilizzare un set bool
per true
quando si desidera che il timer in funzione, e impostarlo su false
quando si smette di esso. Quindi controlla il tuo contesto per vedere se dovrebbe davvero funzionare o meno.
Sono contento di aver trovato questa informazione anche qui. Sto usando, invece della variabile extra, controllando se il timer è ancora abilitato nel callback del timer. – Fanda
Dipende dal timer. Se proviene dal threading dello spazio dei nomi, smaltirlo e ricrearlo quando è necessario, oppure fare in modo che il timer deleghi l'attesa all'evento di reimpostazione (vedere msdn). Il namespace System.Timers ha un metodo start e stop.
Quindi, per aggiungere alle risposte precedenti, nel caso in cui si utilizza la classe System.Threading.Timer, Questo fermerà definitivamente senza ulteriori possibilità di utilizzare la stessa istanza:
timer.Dispose()
altrimenti:
timer.Change(Timeout.Infinite, Timeout.Infinite)
- 1. NSTimer non si ferma
- 2. servizio di Android si ferma
- 3. Come si ferma l'enumerazione veloce?
- 4. Come si ferma il molo
- 5. C# Come mettere in pausa un timer?
- 6. NSTimer si ferma in background dopo un po 'di tempo
- 7. Come si crea un timer in WPF?
- 8. Come resettare un timer in C#?
- 9. Perché la guardia si ferma?
- 10. Come si ferma un div che occupa spazio?
- 11. Come si ferma l'esecuzione di MSBuild senza generare un errore?
- 12. Come si ferma un server perl Dancer/Starman/Plack?
- 13. Timer C# non temporaneo
- 14. C Richiamata timer
- 15. Utilizzo di un timer C# con Moq
- 16. Blurry gradiente lineare si ferma in cromo
- 17. Come implementare un timer in C su Windows
- 18. Geolocalizzazione non si ferma in PhoneGap
- 19. IntelliJ non si ferma tomcat/tcServer
- 20. Android Media Player non si ferma
- 21. Come creare il timer in WinApi (C++)?
- 22. avvio Primavera si ferma dopo l'inizio
- 23. Xcode si ferma sempre in main.m dopo un crash
- 24. Il timer C# non ticcherà
- 25. Come si crea un evento timer accurato in Objective-C/iOS?
- 26. gdb si ferma in un file di comando se c'è un errore. Come continuare nonostante l'errore?
- 27. cocos2d: Come impostare un timer
- 28. Come ci si ferma e quindi si avvia/attiva un evento con JQuery?
- 29. Come notificarmi quando uno script python si imbatte in un errore o si ferma semplicemente?
- 30. C# Timer o Thread. Sonno
inserisci il tuo codice per un buon inizio. – Pabuc
Mostraci un codice – Kimtho6
Quale delle classi di timer? Ce ne sono 4 che conosco, proprio nel BCL. – Oded