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
jeden. Pozwól, aby twój procesor pracował przez jakiś czas, nie powodując zauważalnego zdarzenia.
2. Nie wykonuj innych operacji podczas tego opóźnienia, aby utworzyć proste opóźnienie tymczasowe.
Metoda 1 z 2:
Metodikikla "dla pętli"jeden. Używaj typowy"Dla", następnie pusty operator do wdrożenia opóźnienia.
2. Napisz w następujący sposób, na przykład:
Metoda 2 z 2:
Metodik"Sen ()"jeden. Użyj snu ().Funkcja jest nazwa (int MS), zadeklarowany
2. Włącz następujący wiersz do swojego programu"Int main ()":
3. Wstaw, gdzie jest to konieczne, aby Twój program dokonuje opóźnienia:
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 ().