Avatar billede cvpcvp Nybegynder
15. april 2004 - 13:51 Der er 19 kommentarer og
1 løsning

Timer der skal udføre event efter antal millisekunder

Jeg vil gerne have lavet en timer i c++ som udfører en kommando efter et givent antal millisekunder.

Nogen der har et forslag?

(jeg bruger ikke MFC, og vil gerne undgå WndProc)
Avatar billede jpk Nybegynder
15. april 2004 - 13:59 #1
Mener du, med at undgå WndProc, at du ikke vil have en "case WM_TIMER"?
Avatar billede cvpcvp Nybegynder
15. april 2004 - 13:59 #2
ja hvis det kan lade sig gøre...
Avatar billede jpk Nybegynder
15. april 2004 - 14:02 #3
Du kan lave en tråd (beginthread), der kalder en funktion med et fast interval..?
Avatar billede cvpcvp Nybegynder
15. april 2004 - 14:04 #4
kommer der så ikke et problem med at overholde tiderne? hvis en anden tråd kører, så vil beskeden blive sendt for sent vil den ikke?
Avatar billede cvpcvp Nybegynder
15. april 2004 - 14:07 #5
er det meget kompliseret at inplementeret wndproc? i øjeblikket består mit program bare af en main() struktur.
Avatar billede jpk Nybegynder
15. april 2004 - 14:08 #6
Det vil den muligvis, men i praksis er det næppe et problem.
Det er ikke muligt "overholde tiderne" på en alm. PC, da der aldrig er nogen garanti for at noget udføres på et bestemt tidspunkt.
Du er ikke bedre stillet med en WM_TIMER message, ligesom Sleep "kun" garanterer dig at den vil sove i MINDST det antal ms du angiver, måske længere...
Avatar billede cvpcvp Nybegynder
15. april 2004 - 14:10 #7
hvordan får jeg så det med en Wm_TIMER til at fungere når jeg kun har denne main() struktur. hvilke ændringer kræver det?
Avatar billede cvpcvp Nybegynder
15. april 2004 - 14:11 #8
det ser nogenlunde sådan ud:

main()
{
.
.
.
while(1){
.
.
}
så skulle denne timer gerne "fyre" f.eks. hvert 10 ms
Avatar billede cvpcvp Nybegynder
15. april 2004 - 14:12 #9
gik lidt stærk mangler lige en tuborg, men det går jo nok :-)
Avatar billede jpk Nybegynder
15. april 2004 - 14:12 #10
Hvis du har en main-funktion som entry point, er det fordi det er et consolprogram. Du skal istedet lave et Windowsprogram
Avatar billede cvpcvp Nybegynder
15. april 2004 - 14:22 #11
nu har jeg ikke ret meget erfaring med windowsprogrammer, hvor skal jeg indsætte den kode der skal køre hele tiden? (bare sådan nogenlunde), lige som det jeg har haft liggende i min while(1)
Avatar billede jpk Nybegynder
15. april 2004 - 14:28 #12
Hvis du har noget kode der skal køre hele tiden, bør du putte det i en seperat tråd. Ellers vil det jo bare blokere hovedtråden og du vil aldrig få processeret nogle messages...

Er det virkelig noget der skal køre "hele tiden"?
Avatar billede cvpcvp Nybegynder
15. april 2004 - 16:02 #13
ja, jeg skal polle noget hardware.

Jeg har løst det ved at oprette et tråd mere der sørger venter en tid og så sender.

tak for hjælpen.....

du skal lige ligge et svar hvis du vil have point..
Avatar billede bertelbrander Novice
15. april 2004 - 19:41 #14
Man kan godt bruge WM_TIMER i en konsol-app:

http://www.eksperten.dk/spm/469811
Avatar billede jpk Nybegynder
16. april 2004 - 08:45 #15
Ja, det har du jo egentlig ret i...
Avatar billede cvpcvp Nybegynder
22. juni 2004 - 08:34 #16
har kunne bruge lidt af det hele i har nævnt.. kan i ikke lige smide et svar så får i lidt point...
Avatar billede jpk Nybegynder
22. juni 2004 - 08:49 #17
Svar...
Avatar billede cvpcvp Nybegynder
04. august 2004 - 14:35 #18
bertelbrander, hvis du vil have point skal du lige smide et svar... ellers tilfalder de allesammen jpk....
Avatar billede bertelbrander Novice
04. august 2004 - 19:32 #19
Jeg vil ikke have point.
Avatar billede cvpcvp Nybegynder
10. august 2004 - 08:31 #20
det er da bare ok.. så får jpk dem....
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester