Cum să organizați o întârziere de execuție a programului în c

Ați dorit vreodată să creați un program pe C, care liniile unui anumit timp? Puteți configura o modalitate de a "zbura", de exemplu: atunci când afișați o pagină pop-up (notificare sau sfat) pentru redare. . Ok, iată câteva modalități de a crea un program de tip "Stați liniștit" (stați liniștit), citiți mai departe ...

Pași

  1. Imagine intitulată întârzierea în pasul 1
unu. Lăsați procesorul să lucreze de ceva timp fără a provoca un eveniment vizibil.
  • Imagine intitulată întârzierea în pasul 2
    2. Nu efectuați alte operațiuni în timpul acestei întârzieri pentru a crea o întârziere temporară simplă.
  • Metoda 1 din 2:
    Metodikikla "For-Loop"
    1. Imagine intitulată întârzierea în pasul 3
    unu. Utilizați tipicCycycle"Pentru", urmată de un operator gol pentru a implementa întârzierea.
  • Imagine intitulată întârzierea în pasul C 4
    2. Scrieți după cum urmează, de exemplu:
  • pentru (i = 1 - i<100>
  • Operatorul merge după "-" face ca computerul să execute un ciclu de 100 de ori fără un eveniment vizibil. Ea creează doar o întârziere temporară.
  • Metoda 2 din 2:
    Metodic"Somn ()"
    1. Imagine intitulată întârzierea în pasul 5
    unu. Utilizați somnul ().Funcția este denumită (INT MS), declarată în
  • Imagine intitulată întârzierea în pasul C 6
    2. Activați următoarea linie la programul dvs"Int principal ()":
  • #Include
  • Imagine intitulată întârzierea în pasul C 7
    3. Introduceți unde este necesar ca programul dvs. să facă întârzierea:
  • Somn (1000);
  • Schimbare "1000" Pe numărul de milisecunde doriți să așteptați (de exemplu, dacă doriți să faceți o întârziere de 2 secunde, înlocuiți-o"2000".
  • Sfat: În unele sisteme, valoarea poate fi indicată în câteva secunde în loc de milisecunde. Prin urmare, uneori 1000 - nu este 1 s, ci, de fapt, 1000 de secunde.
  • Cod simplu

    Un program care așteaptă un anumit număr de secunde:

    #Include #Include Int Principal () {int del- // Perioada de întârzierePrintf ("Introduceți timpul de întârziere (în secunde): ") -Scanf ("% I",& Del) -Del * = 1000- // Multiplicați-l cu 1000 pentru a converti la Millisecondsdelay (del) - // întârziere.Printf ("Terminat.") -Recture 0-}


    Un program care efectuează numărătoarea inversă de la 10 la 0:

    #Include #Include  Principal () {int i-pentru (i = 10- i> = 0- i -) {Printf ("% i n",i) - // Scrieți curentul "numărătoarea inversă" numbdelay (1000) - // așteptați o secundă} retur 0-}

    sfaturi

    • MilliseCenda este de 1/1000 de secunde.
    • Algoritmul specificat mai sus poate fi implementat utilizând orice structură ciclică cu operatorul zero ulterior-"- Cum să utilizați în timp ce sau faceți-timp.

    Avertizări

    • Această metodă este, de obicei, inutilă în altceva decât programul trivial. În general, utilizați cronometrele sau abordarea orientată spre eveniment pentru ao implementa. În caz contrar, programul nu va răspunde în timpul întârzierii și nu este întotdeauna bun. În plus, alegerea n în ciclu, dacă depinde de executarea comenzilor, poate avea rezultate neașteptate. Aparent, autorul sursă nu a auzit niciodată despre compilatorul de optimizare ... Poate optimiza întregul ciclu dacă nu face nimic !
    • Rețineți că atunci când utilizați metoda "For-Loop" ("Pentru" ciclu), poate fi necesar pentru un interval foarte mare pentru I, deoarece operatorul gol este efectuat foarte repede. Astfel de numere mari pot să nu se potrivească în tipul întregului.
    • Dacă utilizați "For-Loop", compilatorul poate optimiza codul și, deoarece ciclul nu face nimic, scoateți-l. Acest lucru nu apare atunci când utilizați întârzierea ().
    Publicații similare