Execution hebdomadaire d'une fonction

Signaler
-
 Utilisateur anonyme -
Bonjour,


Je suis confronte a un probleme que je ne parviens pas a resoudre. Mon
programme est cense tourner 24h/24 et l'utilisateur doit pouvoir
selectionner une option qui lui permet de programmer un enregistrement
(video dans mon cas). La fonction d'enregistrement a deja ete faite et
mon probleme est de lancer cette fonction periodiquement (toutes les
semaines).


Sur internet, j'ai trouve beaucoup d'exemples permettant de lancer des
taches (ScheduledTasks) mais rien permettant de solutionner mon cas.
Suis si nul en recherche d'informations ? Auriez vous un semblant
d'idee pour resoudre ce probleme ?


Merci d'avance.

2 réponses


J'ai fait un code bien lourd qui permet de comparer la date actuelle
avec la date de programmation mais d'une part ce code est tres "moche"
et pas bien ecrit et d'autre part, je ne peux pas l'adapter pour
verifier les programmations pour les sept jours de la semaine (7
programmations differentes).


Si vous pouviez m'indiquer ce qu'on peut facilement corriger, je vous remercie d'avance.

            IniFile ini = new IniFile();

            ini.IniFileName(@"C:\CAIRO\Surveillance\schedule.ini");

            string startHour = ini.GetValue("SCHEDULE7","StartHour");

            string startMinute = ini.GetValue("SCHEDULE7","StartMinute");

            string startAMPM = ini.GetValue("SCHEDULE7","StartAMPM");

            string endHour = ini.GetValue("SCHEDULE7","EndHour");

            string endMinute = ini.GetValue("SCHEDULE7","EndMinute");

            string endAMPM = ini.GetValue("SCHEDULE7","EndAMPM");

            string SpecificDate = ini.GetValue("SCHEDULE7","SpecificDate");

            DateTime dt = DateTime.Now;

            DateTime
startup = DateTime.Parse(SpecificDate + " " + startHour + ":"+
startMinute + ":00 " + startAMPM);

            TimeSpan duration = startup - dt;

            double secondsLeft = duration.TotalSeconds;

            if
(secondsLeft>30)    {   
TimerSpecific.Interval = 1000*20;    }

            else if
(secondsLeft<=30 & secondsLeft>10)   
{    TimerSpecific.Interval = 1000*5;    }

            else if
(secondsLeft<=10 & secondsLeft>=1.5)   
{    TimerSpecific.Interval = 1000;    }

            else if
(secondsLeft<1.5 & secondsLeft>=0)   
{    TimerSpecific.Enabled false; MotionTimer.Enabled
true;    }

            else { TimerSpecific.Enabled = false; }