|
| Timer-ting Fra : Andreas Jensen |
Dato : 10-09-02 23:20 |
|
Hej,
Jeg har et program, som jeg skal have oversat til c/c++.
Det går ud på, at man indtaster et tidspunkt, og så udførte det en handling,
når det tidspunkt finder sted.
Jeg brugte to TTimer'e, men hvad gør man i c/c++?
Kan man tjekke den aktuelle tid hvert sekund og sammenligne den med en
indtastet tid,
eller hvordan skal det gøres?
Med venlig hilsen
Andreas Kryger Jensen
| |
Mogens Hansen (11-09-2002)
| Kommentar Fra : Mogens Hansen |
Dato : 11-09-02 05:52 |
|
"Andreas Jensen" <xylofonius@hotpop.com> wrote in message
news:3d7e6f28$0$175$edfadb0f@dspool01.news.tele.dk...
> Jeg har et program, som jeg skal have oversat til c/c++.
> Det går ud på, at man indtaster et tidspunkt, og så udførte det en
handling,
> når det tidspunkt finder sted.
> Jeg brugte to TTimer'e, men hvad gør man i c/c++?
Jeg antager at du har brugt Borland Delphi/Kylix.
Hvis du bruger Borland C++Builder / Kylix 3 kan du bare bruge TTimer igen,
og har samme fordele og ulemper som i Delphi.
Bemærk dog at TTimer ikke nødvendigvis er præcise, men kun bliver kald når
programmet ikke har andet at lave - det er en event-drevet ikke
multi-threaded løsning. Men ofte er det tilstrækkeligt godt.
> Kan man tjekke den aktuelle tid hvert sekund og sammenligne den med en
> indtastet tid,
> eller hvordan skal det gøres?
Det er een mulighed.
Men det vil typisk belaste een CPU 100%, så den ikke kan lave andet.
Til gengæld vil det virke på de fleste systemer.
Hvis det er under MS-Windows kan du kigge på WM_TIMER - det er den Borland
Delphi / C++Builder / Kylix bruger i TTimer.
En anden løsning er at bruge en ekstra tråd, som man sætter til at sove i et
bestemt stykke tid. Eventuelt kan man sætte prioriteten på tråden, så
arbejdet blive udført uanset hvor travlt hovedprogrammet er.
Håndtering af tråde er platformspecifict (evt. indkapslet i et portabelt
bibliotek).
Venlig hilsen
Mogens Hansen
| |
Morten Bonlokke Post (12-09-2002)
| Kommentar Fra : Morten Bonlokke Post |
Dato : 12-09-02 13:15 |
|
Mogens Hansen wrote:
> "Andreas Jensen" <xylofonius@hotpop.com> wrote in message
> news:3d7e6f28$0$175$edfadb0f@dspool01.news.tele.dk...
>
> > Jeg har et program, som jeg skal have oversat til c/c++.
> > Det går ud på, at man indtaster et tidspunkt, og så udførte det en
> handling,
> > når det tidspunkt finder sted.
> > Jeg brugte to TTimer'e, men hvad gør man i c/c++?
>
> Jeg antager at du har brugt Borland Delphi/Kylix.
> Hvis du bruger Borland C++Builder / Kylix 3 kan du bare bruge TTimer igen,
> og har samme fordele og ulemper som i Delphi.
> Bemærk dog at TTimer ikke nødvendigvis er præcise, men kun bliver kald når
> programmet ikke har andet at lave - det er en event-drevet ikke
> multi-threaded løsning. Men ofte er det tilstrækkeligt godt.
>
> > Kan man tjekke den aktuelle tid hvert sekund og sammenligne den med en
> > indtastet tid,
> > eller hvordan skal det gøres?
>
> Det er een mulighed.
> Men det vil typisk belaste een CPU 100%, så den ikke kan lave andet.
> Til gengæld vil det virke på de fleste systemer.
>
Den behøves ikke nodvendigvis at bruge 100% CPU tid. De kan evt. tjekke hvert
sekundt,
ved at lave den køre i en lykke der sleeper i et sekundt eller et halvt eller
hvad du nu foretrækker.
Jeg kan dog huske at der er en smartere måde som jeg benyttede på et tidligere
tidspunkt, det vil
jeg lige grave i om nødvendigt.
>
> Hvis det er under MS-Windows kan du kigge på WM_TIMER - det er den Borland
> Delphi / C++Builder / Kylix bruger i TTimer.
>
> En anden løsning er at bruge en ekstra tråd, som man sætter til at sove i et
> bestemt stykke tid. Eventuelt kan man sætte prioriteten på tråden, så
> arbejdet blive udført uanset hvor travlt hovedprogrammet er.
> Håndtering af tråde er platformspecifict (evt. indkapslet i et portabelt
> bibliotek).
>
> Venlig hilsen
>
> Mogens Hansen
Mvh.
Morten Post <u021952@daimi.au.dk>
| |
|
|