Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - ripetere le funzioni ogni tot di minuti
Forum - C/C++ - ripetere le funzioni ogni tot di minuti

Avatar
giga91 (Normal User)
Newbie


Messaggi: 12
Iscritto: 04/05/2010

Segnala al moderatore
Postato alle 12:18
Domenica, 06/06/2010
Salve, come da titolo cerco qualche consiglio per far eseguire un operazione ogni 5 minuti per esempio..Mi sapreste orientare verso qulache funzione?

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 12:46
Domenica, 06/06/2010

PM Quote
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1787
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 15:33
Domenica, 06/06/2010
se sei su linux, considera anche l'opportunità di creare un piccolo programmino contenente solo la funzione che ti serve, e di eseguirlo tramite schedulazione su cronjob.

E' un'idea alternativa a quella del timer, per programmi che si avviano ogni tanto, eseguono qualche operazione (ad esempio backup incrementale, o sincronizzazione con un server) e poi terminano, liberando le risorse per altri programmi.

http://en.wikipedia.org/wiki/Cron


Software Failure: Guru Meditation
Forum su Informatica, Elettronica, Robotica e Tecnologia: http://www.nonsoloamiga.com
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5460
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 15:35
Domenica, 06/06/2010
Anche con Windows usa il sistema operativo, ovvero "Operazioni Pianificate".


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1787
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 15:39
Domenica, 06/06/2010
@nessuno: giusto, sono un po' arrugginito con Windows, non usavo Operazioni Pianificate dai tempi del Win95, dove era settato di default lo scandisk ogni giovedì alle 3 di notte (mi pare) XD
Poi sono arrivati i filesystem con journaling (come NTFS) e siamo tutti più felici :-)


Software Failure: Guru Meditation
Forum su Informatica, Elettronica, Robotica e Tecnologia: http://www.nonsoloamiga.com
PM Quote
Avatar
ShellC91 (Normal User)
Newbie


Messaggi: 15
Iscritto: 29/06/2010

Segnala al moderatore
Postato alle 8:31
Mercoledì, 30/06/2010
Se il programma è sempre aperto e devi eseguire una determinata funzione ogni tot. di tempo potresti fare un thread che controlla costantemente (con un ciclo while) quanto tempo è passato (vedi time.h) e ogni 5 minuti lanci la funzione per poi ritornare nel ciclo while del thread (e intanto aggiorni il tempo attuale per i prossimi 5 minuti).

Però è un modo un po' troppo "incasinato"... :asd:


DUAL-BOOT: Windows - Debian

http://counter.li.org
Linux user #515661.
PM Quote
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1787
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 10:38
Mercoledì, 30/06/2010
Testo quotato

Postato originariamente da ShellC91:

Se il programma è sempre aperto e devi eseguire una determinata funzione ogni tot. di tempo potresti fare un thread che controlla costantemente (con un ciclo while) quanto tempo è passato (vedi time.h) e ogni 5 minuti lanci la funzione per poi ritornare nel ciclo while del thread (e intanto aggiorni il tempo attuale per i prossimi 5 minuti).

Però è un modo un po' troppo "incasinato"... :asd:



a parte il fatto che il topic è vecchio di un mese... e vabbè...
Ma mi spieghi quale vantaggio si avrebbe nell'usare uno spinlock così lungo? Hai idea di quanti cicli di CPU si sprecano in questo modo? Per intervalli di tempo così lunghi, un sistema basato su timer e notifiche (come appunto le operazioni pianificate di windows) è "l'unica soluzione accettabile", senza se e senza ma :-)


Software Failure: Guru Meditation
Forum su Informatica, Elettronica, Robotica e Tecnologia: http://www.nonsoloamiga.com
PM Quote
Avatar
ShellC91 (Normal User)
Newbie


Messaggi: 15
Iscritto: 29/06/2010

Segnala al moderatore
Postato alle 19:49
Mercoledì, 30/06/2010
Testo quotato

Postato originariamente da TheKaneB:

Testo quotato

Postato originariamente da ShellC91:

Se il programma è sempre aperto e devi eseguire una determinata funzione ogni tot. di tempo potresti fare un thread che controlla costantemente (con un ciclo while) quanto tempo è passato (vedi time.h) e ogni 5 minuti lanci la funzione per poi ritornare nel ciclo while del thread (e intanto aggiorni il tempo attuale per i prossimi 5 minuti).

Però è un modo un po' troppo "incasinato"... :asd:



a parte il fatto che il topic è vecchio di un mese... e vabbè...
Ma mi spieghi quale vantaggio si avrebbe nell'usare uno spinlock così lungo? Hai idea di quanti cicli di CPU si sprecano in questo modo? Per intervalli di tempo così lunghi, un sistema basato su timer e notifiche (come appunto le operazioni pianificate di windows) è "l'unica soluzione accettabile", senza se e senza ma :-)



Sì appunto sarebbe completamente sbagliata la mia "soluzione" se si può chiamare così. :)
Era l'unica cosa che mi era venuta in mente,
Ho ancora molto da imparare :yup:


DUAL-BOOT: Windows - Debian

http://counter.li.org
Linux user #515661.
PM Quote