come implementare timer in C / C ++
Domanda
voglio chiamare una funzione della classe di attività dopo ogni 2 ore. Io non ricevo alcun modo per implementare lo stesso in C / C ++ senza utilizzare un ciclo while. Il mio problema è che non posso usare while (1) in cui ciò non Retun il regolatore per l'ulteriore esecuzione.
Ogni puntatore in questa materia wud essere utile .... :)
thnaks
Soluzione
In parole povere C, avrei pensato di utilizzare le funzioni alarm(2)
o setitimer(2)
. In alternativa, genera un thread ed eseguire l'attesa da lì.
Se si decide l'allarme o delle vie setitimer, tenere a mente che avrete bisogno di scrivere gestori di segnale e potrebbe essere necessario un ciclo spedizione verso nota che è il momento di fare le chiamate di manutenzione periodica, in quanto è considerato cattiva pratica di fare alcune cose dall'interno di un gestore di segnale.
Altri suggerimenti
Boost.Asio fornisce Timer .
Per una soluzione generale, si potrebbe avviare un thread, che invia qualche messaggio al thread principale dopo 2 ore.
Per Linux, è possibile utilizzare questo:
http://linux.die.net/man/3/alarm
e quindi gestire il segnale SIGALRM