Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. 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: 1792
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

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
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 ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1792
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 :-)

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:

PM Quote
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1792
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 :-)

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:

PM Quote