Bagikan melalui


Menangguhkan Eksekusi Utas

Utas dapat menangguhkan dan melanjutkan eksekusi utas lain. Saat utas ditangguhkan, utas tidak dijadwalkan untuk waktu pada prosesor.

Jika utas dibuat dalam status ditangguhkan (dengan bendera CREATE_SUSPENDED ), utas tidak mulai dijalankan sampai utas lain memanggil fungsi ResumeThread dengan handel ke utas yang ditangguhkan. Ini dapat berguna untuk menginisialisasi status utas sebelum mulai dijalankan. Menangguhkan utas saat pembuatan dapat berguna untuk sinkronisasi satu kali, karena ini memastikan bahwa utas yang ditangguhkan akan menjalankan titik awal kodenya saat Anda memanggil ResumeThread.

Fungsi SuspendThread tidak dimaksudkan untuk digunakan untuk sinkronisasi utas karena tidak mengontrol titik dalam kode di mana eksekusi utas ditangguhkan. Fungsi ini terutama dirancang untuk digunakan oleh debugger.

Utas dapat sementara menghasilkan eksekusinya untuk interval tertentu dengan memanggil fungsi Sleep atau SleepEx Ini berguna terutama dalam kasus di mana utas merespons interaksi pengguna, karena dapat menunda eksekusi cukup lama untuk memungkinkan pengguna mengamati hasil tindakan mereka. Selama interval tidur, utas tidak dijadwalkan untuk waktu pada prosesor.

Fungsi SwitchToThread mirip dengan Sleep dan SleepEx, kecuali Anda tidak dapat menentukan interval. SwitchToThread memungkinkan utas untuk menyerahkan ikatan waktunya.