/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
sleep() ?
Fra : Jonas Delfs


Dato : 26-06-01 17:11

Hej NG

Jeg er futtet herover da jeg fejlpostede i dk.edb.programmering.

Jeg sidder lige og skriver lidt på mit første c++-program, men er løbet ind
i et problem:
Jeg har behov for at stoppe mit program et par sekunder forskellige steder,
og kender sleep() fra PHP.
Langt om længe har jeg fundet ud af at sleep() holder til i dos.h, så den
inkluderer jeg naturligvis. Men når jeg så laver et kald til sleep() og
prøver at compile, får jeg denne fejl:

Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
C:\backup\CPLUSP~1\tests\my_first\test.cpp:
Warning W8053 C:\backup\CPLUSP~1\tests\my_first\test.cpp 23: 'sleep(unsigned
int)' is obsolete in function main()
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland

Hvorfor er sleep() "forældet"? -og hvad gør jeg ved det?
Nu jeg har fat på jer: Er der nogen der kender en god funktions
reference(/manual)?

På forhånd tak!

--
Mvh. Jonas Delfs, http://delfs.dk
e72bd3e51a7937c87d28b85d677a97b2



 
 
Gonex (26-06-2001)
Kommentar
Fra : Gonex


Dato : 26-06-01 20:42

Så vidt jeg ved er er der et win32 API kald som hedder Sleep(); (Bemærk
stort s). Den har dog den ulempe at hvis du bruger den i din main thread,
vil hele brugerfladen også "stoppe" med at virke mens programmet/tråden
sover. Apropos dette problem, er der nogle der kender til en måde at stoppe
eksekvering af en kode X antal tid UDEN brugerfladen også bliver passiv.

And when you know the ways of men, then you can only pity them.
- Martin Walkyier (Skyclad)



Kent Friis (26-06-2001)
Kommentar
Fra : Kent Friis


Dato : 26-06-01 19:55

Den Tue, 26 Jun 2001 20:42:13 +0100 skrev Gonex:
>Så vidt jeg ved er er der et win32 API kald som hedder Sleep(); (Bemærk
>stort s). Den har dog den ulempe at hvis du bruger den i din main thread,
>vil hele brugerfladen også "stoppe" med at virke mens programmet/tråden
>sover. Apropos dette problem, er der nogle der kender til en måde at stoppe
>eksekvering af en kode X antal tid UDEN brugerfladen også bliver passiv.

På en unix/X bruger man select() til det formål. Har du ikke noget
lignende under win32?

Mvh
Kent
--
Windows 2000 service pack 1 will fix 300 bugs - that leaves only 64700
to future service packs.

Jonas Delfs (26-06-2001)
Kommentar
Fra : Jonas Delfs


Dato : 26-06-01 20:41

"Gonex" <nospam@please.tk> skrev i en meddelelse
news:9hal2b$sug$1@news.inet.tele.dk...

> Så vidt jeg ved er er der et win32 API kald som hedder Sleep(); (Bemærk
> stort s).

Tak!
Det var lige præcist kombinationen af at inkludere windows.h OG bruge
Sleep() på én gang, jeg ikke havde prøvet. :)

> Den har dog den ulempe at hvis du bruger den i din main thread,
> vil hele brugerfladen også "stoppe" med at virke mens programmet/tråden
> sover.

Det er bare et simpelt dos-program.

Btw. kigger du lige her: http://usenet.dk/netikette/quote.html

--
Mvh. Jonas Delfs, http://delfs.dk
e72bd3e51a7937c87d28b85d677a97b2



Michael Rasmussen (26-06-2001)
Kommentar
Fra : Michael Rasmussen


Dato : 26-06-01 23:02

"Gonex" <nospam@please.tk> wrote in message
news:9hal2b$sug$1@news.inet.tele.dk...
[snipsnap]
> sover. Apropos dette problem, er der nogle der kender til en måde at
stoppe
> eksekvering af en kode X antal tid UDEN brugerfladen også bliver passiv.

du kan jo passende have en tråd til dit message loop og en til det "andet"
som du
gerne vil stoppe engang imellem.

* Michael Rasmussen



Claus Brinch Jensen (02-07-2001)
Kommentar
Fra : Claus Brinch Jensen


Dato : 02-07-01 16:46

"Gonex" <nospam@please.tk> wrote in message
news:9hal2b$sug$1@news.inet.tele.dk...

> sover. Apropos dette problem, er der nogle der kender til en måde at
stoppe
> eksekvering af en kode X antal tid UDEN brugerfladen også bliver passiv.

Eftersom din application (WIN32) er ansvarlig for at opdatere brugerfladen
kan dette ikke direkte lade sig gøre. Du er derfor nødt til at arbejde dig
udenom på den ene eller anden måde, f.eks. ved at lave en ny tråd eller ved
regelmæssigt at dispatche trådens message queue medens dit program holder
stille.

--
Claus Brinch Jensen

-!- If replying by e-mail please remove ALL dashes from the e-mail address.



Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste