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

Bagaimana untuk Menjeda Perlaksanaan Program dalam C menggunakan Fungsi Tidur?

Linda Hamilton
Linda Hamiltonasal
2024-10-24 03:31:30835semak imbas

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>

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

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

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>

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

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

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>

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:
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