12. december 2002 - 16:35Der er
7 kommentarer og 1 løsning
Køre program hver x'te minut (time, dag, måned, år, etc.)
Jeg er ved at lave et simpelt backup program, og lige nu har jeg sådan at den bare kører hvert x'te time (og derimellem sover den bare). Det jeg så gerne vil at lave så den kan kører på bestemte tidspunkter (f.eks. hver mandag kl. 8). Spr. er så hvordan man smartest gør det. Har både overvejet at lade den vågne engang imellem og tjekke om det er tid, eller bare lade den sove indtil mandag kl. 8. Men begge dele virker rimelig tåbeligt (især hvis der f.eks. er 1 måned mellem hver gang den skal køre).
Findes der en smartere måde (det gør der jo nok)?
Ved godt det er et ret generelt programmerings spr. men eftersom jeg laver det i C# virkede det mest logisk at stille det i .NET kategorien.
Fandt lige System.Threading.Timer klassen, som umiddelbart ser ud til at kunne gøre det jeg ønsker. Men det svare umiddelbart bare til at lade den sove i f.eks. 1 måned. Nogen der kender til denne klasse?
Det smarteste er vel at lade den sove i x-antal sekunder. Så kontrollerer den joblisten om der er et job der skal udføres, udfører dette. og sover igen.
Det tager ingen cpu-ressourcer med en sovende tråd.
kichian> Det er korrekt at det ikke tager cpu-resourcer at lade en tråd sove, men der er jo ikke tale om sekunder....der er måske tale om måneder, hvorfor jeg syntes der måske findes en smartere måde.
Som f.eks. at lade programmet bruge den i Windows indbyggede "Scheduled Tasks". Jeg ved bare ikke helt hvordan jeg (1) skriver til den inde fra et program og (2) hvordan jeg får den til "kalde" en metode i et allerede kørende program.
Hvis jobbet kun skal køre med måneders mellemrum, så lad programmet køre ved Windows-startup. Der kan det så checkke om det er tid til at gøre det der nu skal gøres. ad (2) Alle andre løsninger baserer sig på en tråd der tjekker med passende små intervaller. Hvilket er det generelle tilfælde. ad (1) Evt kan du få Scheduled Tasks til at køre dit program en gang om ugen/måneden. Her tjekker dit program så selv om det skal udføre noget eller bare dø igen.
Ok....jamen så tror jeg at jeg holder mig til tråd løsningen.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.