Jak zorganizować opóźnienie wykonania programu w c

Czy kiedykolwiek chciałeś utworzyć program na C, które linie pewnego czasu? Możesz skonfigurować sposób na "Fly", na przykład: podczas wyświetlania pop-up strony (powiadomienie lub wskazówka) do odtwarzania. . OK, oto kilka sposobów tworzenia programu typu "Stać spokojnie" (stać nieruchomy), czytaj dalej ...

Kroki

  1. Obraz zatytułowany opóźnienie w Krok 1
jeden. Pozwól, aby twój procesor pracował przez jakiś czas, nie powodując zauważalnego zdarzenia.
  • Obraz zatytułowany Opóźnienie w Krok 2
    2. Nie wykonuj innych operacji podczas tego opóźnienia, aby utworzyć proste opóźnienie tymczasowe.
  • Metoda 1 z 2:
    Metodikikla "dla pętli"
    1. Obraz zatytułowany Opóźnienie w Krok 3
    jeden. Używaj typowy"Dla", następnie pusty operator do wdrożenia opóźnienia.
  • Obraz zatytułowany opóźnienie w Krok 4
    2. Napisz w następujący sposób, na przykład:
  • dla (i = 1 - ja<100>
  • Operator pójdzie "-" Sprawia, że ​​komputer wykonuje cykl 100 razy bez zauważalnego zdarzenia. Tworzy tylko tymczasowe opóźnienie.
  • Metoda 2 z 2:
    Metodik"Sen ()"
    1. Obraz zatytułowany Opóźnienie w Krok 5
    jeden. Użyj snu ().Funkcja jest nazwa (int MS), zadeklarowany
  • Obraz zatytułowany Opóźnienie w Krok 6
    2. Włącz następujący wiersz do swojego programu"Int main ()":
  • #Zawierać
  • Obraz zatytułowany Opóźnienie w Krok 7
    3. Wstaw, gdzie jest to konieczne, aby Twój program dokonuje opóźnienia:
  • Sen (1000);
  • Zmiana "1000" Na liczbie milisekund, których chcesz czekać (na przykład, jeśli chcesz dokonać 2-sekundowego opóźnienia, wymień"2000".
  • Wskazówka: W niektórych systemach wartość może być wskazana w sekundach zamiast milisekund. Dlatego czasami 1000 - nie jest 1 s, ale w rzeczywistości, 1000 sekund.
  • Przykładowy kod

    Program, który oczekuje pewnej liczby sekund:

    #Zawierać #Zawierać int Główny () {int Del- // The Delay PristentPrintF ("Wprowadź czas opóźnienia (w sekundach): ") -Scanf ("% JA",& del) -del * = 1000- // Pomnóż go o 1000, aby przekonwertować na MillisecondsDelay (DEL) - // Opóźnienie.Printf ("Gotowy.") -Return 0-}


    Program, który wykonuje odliczanie od 10 do 0:

    #Zawierać #Zawierać  Main () {int I-for (i = 10- i> = 0- i -) {printf ("% w",i) - // Wpisz bieżący numer "Odliczanie" (1000) - // odczekaj sekundę} Zwróć 0-}

    Rada

    • Millisecunda ma 1/1000 sekund.
    • Algorytm określony powyżej można wdrożyć przy użyciu dowolnej struktury cyklicznej z kolejnym operatorem zero-"- Jak używać podczas gdy lub do czasu.

    Ostrzeżenie

    • Ta metoda jest zwykle bezużyteczna w czymś innym niż trywialny program. Ogólnie rzecz biorąc, użyj timery lub podejścia zorientowanego na zdarzenie, aby go wdrożyć. W przeciwnym razie program nie odpowie w czasie opóźnienia i nie zawsze jest dobry. Ponadto wybór n w cyklu, jeśli zależy to od wykonania poleceń, może mieć nieoczekiwane wyniki. Najwyraźniej autor źródłowy nigdy nie słyszał o optymalizującym kompilatorze ... może zoptymalizować cały cykl, jeśli rzeczywiście nic nie robi !
    • Należy pamiętać, że przy użyciu metody "For-pętli" ("dla" cyklu) może być konieczne dla bardzo dużego interwału dla I, ponieważ pusty operator jest wykonywany bardzo szybko. Takie duże liczby mogą nie pasować do typu całkowitego.
    • Jeśli używasz "Loop", kompilator może zoptymalizować kod, a ponieważ cykl nic nie robi, usuń go. Nie wystąpi to przy użyciu opóźnienia ().
    Podobne publikacje