Gå til innhold

Anbefalte innlegg

Kan noen si hvorfor denne ikke "fyrer"?

 

DateTime videre;
videre = DateTime.Now;
videre.AddSeconds(3);
while (videre > DateTime.Now)
{
     
}

 

Denne funker:

using System.Threading;
thread.sleep(3000);

 

men hvorfor funker ikke min egen lille metode?

Lenke til kommentar
Videoannonse
Annonse
Kan noen si hvorfor denne ikke "fyrer"?

 

DateTime videre;
videre = DateTime.Now;
videre.AddSeconds(3);
while (videre > DateTime.Now)
{
     
}

 

Denne funker:

using System.Threading;
thread.sleep(3000);

 

men hvorfor funker ikke min egen lille metode?

6839599[/snapback]

Tja, det kan hende at kompilatoren ser at du ikke gjør noe i while-løkka, slik at det er 'trygt' å fjerne den.

Sjekk binærfila di med reflector eller ildasm for å se om while-løkka i det hele tatt er der.

 

- grå -

Lenke til kommentar

videre = videre.AddSeconds(3);

 

:)

 

Eller:

 

DateTime videre = DateTime.Now.AddSeconds( 3 );

while( videre > DateTime.Now );

 

Eller bare:

for( DateTime tmp = DateTime.Now.AddSeconds( 3 ); tmp > DateTime.Now ; ) ;

 

Btw;

 

while(); ekke så veldig snillt med cpu'en din. Start task-manager og se hva som skjer...

Endret av jorn79
Lenke til kommentar

Tips om du VIL bruke while løkken.

Inni den slenger du inn en liten pause for hver runde den tar.

DateTime videre;
videre = DateTime.Now;
videre = videre.AddSeconds(3);
while (videre > DateTime.Now)
{
    System.Threading.Thread.Sleep(1000);
}

 

Da går ikke CPUen i taket.

 

Alle slike vente løkker du lager så bør du legge inn en eller annen form for venting.

 

Tilogmed System.Threading.Thread.Sleep(1) gjør at CPUen ikke går i taket.

Lenke til kommentar
Tips om du VIL bruke while løkken.

Inni den slenger du inn en liten pause for hver runde den tar.

DateTime videre;
videre = DateTime.Now;
videre = videre.AddSeconds(3);
while (videre > DateTime.Now)
{
    System.Threading.Thread.Sleep(1000);
}

 

 

 

Tja... Nå var hele vitsen å ha en liten pause, så da holder det fint med Thread.Sleep()

 

Ellers var mitt problem at jeg skrev bare

 

videre.AddSeconds(3)

 

og ikke videre = videre.AddSeconds(3)

 

som jorn79 skrev.

Endret av BpB
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...