Newsgroup: it.comp.lang.visual-basic
Titolo: Scheduler

Dovrei realizzare uno scheduler all'interno del mio pg .... qualcuno ha
qualche idea o qualche suggerimento ?


Cosa intendi per scheduler ?
Una acenda di appuntamenti o un avviatore automatico di programmi o qualcosa
d'altro?
--
 /\/\/\/\/\/\/\/\/\/
| Partecipa alla stesura di progetti VB sviluppati in team,
| informati sul Sito Comune sezione Leonardo.
| Io partecipo al progetto Data Raptor, alleati con noi.
 \/\/\/\/\/\/\/\/\/\
Ciao
Ettore Maronese, il Mes
http://www.maronese.com/mes
Sito Comune di questo NG
http://www.murialdo.it/it_lang_vb

 ha scritto nel
messaggio news:GOxk6.4046$_N1....@news.infostrada.it...


 Secondo voi è così che si fa uno scheduler ?
Si è così che si fa uno scheduler.
Però parliamone, perchè dalla tua spiegazione non si capisce se le
operazioni devono avvenire ad orari prestabiliti o a distanza di tepo
prestabilita.
Sappi che il timer è impostabile al massimo con una cadenza non superiore ai
65 secondi circa.
Sappi anche che il timer di windows è la cosa + imprecisa del mondo, in
quanto windows schedula gli eventi del timer per ultimi (anzi, penultimi,
gli ultimi sono gli eventi di paint).
In pratica capita che se al momento di dover scatenare l'evento il
processore è impegnato in qualche elaborazione, l'evento ti giungerà in
ritardo (si parla di decimi di secondo in media, ma potrebbe arrivare a
qualche secondo di ritardo se il PC è molto impegnato, tipo stai lanciando
Word 2000 ).
Questo difettuccio ipedisce l'utilizzo del timer come uno strumento che
scandisce il tempo. Infatti se vuoi attendere 8 ore prima di far capitare un
evento, e se imposti un timer con una cadenza di 1 secondo contando fino a
28800 (8 ore in secondi) l'errore della imprecisione del timer ti si somma
ad ogni evento-timer, e dopo 8 ore puoi avere un errore anche di qualche
minuto.
La soluzione a tutti i mali è usare il timer solo per controllare che ore
sono.
In pratica, se tu sai che alle 09:00 del mattino di oggi devi far scatenare
un evento con una imprecisione massima di 5 secondi, imposti la cadenza del
timer a 5 secondi, ed ad ogni tick (evento timer) controlli se sono passate
le 09:00, se sono passate scateni l'evento schedulato e reimposti la data a
domani alle 09:00.
Se invece devi scatenare un evento fra 5 ore, ti ricavi che ore sono adesso,
sommi 5 ore e imposti la data dell'evento da schedulare.
Come mantenere l'elenco degli orari/eventi da schedulare, bhe, fai come
credi, un DB, un File, un vettore in memoria, tutto va bene.
Se non sai usare le funzioni per la gestione delle date/ore guarda sul
Manuale in linea le funzioni:
    now
    DateAdd()
    DateDiff()
    DateSerial()
    TimeSerial()
    CDate()
    format$() (per ricavare una stringa tipo "25/12/2001")
PS: Qusta sarebbe un'altra faq.  Jimiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
--
/\/\/\/\/\/\/\/\/\/\/\/\/
|  Partecipa alla stesura di progetti VB sviluppati in team,
|  informati sul Sito Comune sezione Leonardo. Io
|  partecipo al progetto Data Raptor, alleati con noi.
\/\/\/\/\/\/\/\/\/\/\/\/\



Grazie mille per la risposta esaudiente .... spero tu possa togliermi
questi altri dubbi.
Ciao, Claudio.

 essere che i timer consumano indipendentemente dal loro settaggio .... bah
!
Ci sono 3 questioni da sapere:
1) Le risorse timer sono limitate nel sistema. Una mia vecchia prova
dimostrò che i timer allocabili sono circa una ventina, dopo di che, il
sistema si rifiuta di allocarne altri. Questo impone ai programmatori un
utilizzo moderato dei timer, e se possibile, limitarsi ad un solo timer per
l'intera applicazione, tarato in modo da soddisfare le varie esigenza della
applicazione.
2) Il timer di per se non pesa nulla al sistema (sapessi quanta roba fa
anche quando pare non faccia nulla... . . . da impazzire!), quello che puo'
pesare è quello che tu fai ad ogno evento di timer. Ovvio che se fai
operazioni che impiegano tempo per essere eseguite (metti 300 milliSec. in
tutto) se il timer lo metti con cadenza 1 minuto, il peso è quasi
trascurabile, ma se lo metti ad ogni secondo.. .bhe ogni secondo tu
mangeresti 0,3 secondi di tempo macchina, ed è davvero tanto. In genere però
i test che occorre fare nei timer sono rapidi e pesano poco.
3) Sebbene un timer lo si puo' impostare con una precisione di 1 mSec, in
verità windows non ha tale precisione (se non con i timers multimediali, ma
quella è un'altra storia) bensi' la precisione e di 1/50 di secondo 20 (mSec
circa) (ricordati che comunque il timer è impreciso per quanto detto nella
scorsa mail)
ps: jimiiiiiiiiiiiiiiiiiiiiiiiiiii dove sei?
--
 /\/\/\/\/\/\/\/\/\/
| Partecipa alla stesura di progetti VB sviluppati in team,
| informati sul Sito Comune sezione Leonardo.
| Io partecipo al progetto Data Raptor, alleati con noi.
 \/\/\/\/\/\/\/\/\/\
Ciao


 ha scritto nel
messaggio news:KNLk6.12208$_N1.2...@news.infostrada.it...
