Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Menjeda Perlaksanaan Program dalam C menggunakan Fungsi Tidur?

Bagaimana untuk Menjeda Perlaksanaan Program dalam C menggunakan Fungsi Tidur?

Linda Hamilton
Lepaskan: 2024-10-24 03:31:30
asal
965 orang telah melayarinya

How to Pause Program Execution in C   using Sleep Functions?

Mencari Fungsi Tidur dalam C

Dalam usaha mengawal aliran pelaksanaan program, anda mungkin menghadapi keperluan untuk menjeda atur cara untuk tempoh tertentu. Dalam C , tiada persamaan langsung dengan fungsi Sleep(time) yang biasa digunakan dalam bahasa lain. Walau bagaimanapun, perpustakaan standard C menyediakan alternatif yang berdaya maju.

Memperkenalkan std::this_thread::sleep_for

C Standard Library menawarkan fungsi std::this_thread::sleep_for, yang membolehkan anda untuk menangguhkan pelaksanaan utas semasa untuk tempoh tertentu. Untuk menggunakannya, anda perlu memasukkan pengepala berikut:

<code class="cpp">#include <chrono>
#include <thread></code>
Salin selepas log masuk

Sintaks std::this_thread::sleep_for adalah seperti berikut:

<code class="cpp">void sleep_for(const std::chrono::duration& timespan);</code>
Salin selepas log masuk

Di mana jangka masa ialah std::chrono::duration objek menentukan tempoh tidur. Untuk mencipta std::chrono::duration berasaskan milisaat, gunakan std::chrono::milisaat pembina:

<code class="cpp">std::chrono::milliseconds timespan(111605);</code>
Salin selepas log masuk

Menggunakan komponen ini, anda boleh menghentikan pelaksanaan program anda untuk masa yang dikehendaki selang:

<code class="cpp">std::this_thread::sleep_for(timespan);</code>
Salin selepas log masuk

Perhatikan bahawa std::this_thread::sleep_until berfungsi sebagai fungsi pelengkap untuk penyegerakan berasaskan masa yang tepat.

Pilihan Tidur Lama (Pra-C 11)

Sebelum pengenalan C 11, bahasa tersebut tidak mempunyai fungsi benang dan keupayaan tidur. Akibatnya, penyelesaian untuk menggantung pelaksanaan bergantung pada platform. Untuk Windows atau Unix, anda mungkin bergantung pada sesuatu seperti ini:

<code class="cpp">#ifdef _WIN32
    #include <windows.h>
    
    void sleep(unsigned milliseconds)
    {
        Sleep(milliseconds);
    }
#else
    #include <unistd.h>
    
    void sleep(unsigned milliseconds)
    {
        usleep(milliseconds * 1000); // takes microseconds
    }
#endif</code>
Salin selepas log masuk

Sebagai alternatif, anda boleh memudahkan pelaksanaan menggunakan rangsangan perpustakaan Boost::this_thread::sleep.

Atas ialah kandungan terperinci Bagaimana untuk Menjeda Perlaksanaan Program dalam C menggunakan Fungsi Tidur?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan