_endthread
, _endthreadex
Mengakhiri utas; _endthread
mengakhiri utas yang dibuat oleh _beginthread
dan _endthreadex
mengakhiri utas yang dibuat oleh _beginthreadex
.
Sintaks
void _endthread( void );
void _endthreadex(
unsigned retval
);
Parameter
retval
Kode keluar utas.
Keterangan
Anda dapat memanggil _endthread
atau _endthreadex
secara eksplisit untuk mengakhiri utas; namun, _endthread
atau _endthreadex
dipanggil secara otomatis ketika utas kembali dari rutinitas yang diteruskan sebagai parameter ke _beginthread
atau _beginthreadex
. Mengakhiri utas dengan panggilan ke endthread
atau _endthreadex
membantu memastikan pemulihan sumber daya yang tepat yang dialokasikan untuk utas.
Catatan
Untuk file yang dapat dieksekusi yang ditautkan dengan Libcmt.lib, jangan panggil API Win32 ExitThread
; ini mencegah sistem run-time mengklaim kembali sumber daya yang dialokasikan. _endthread
dan _endthreadex
klaim kembali sumber daya utas yang dialokasikan lalu panggil ExitThread
.
_endthread
secara otomatis menutup handel utas. (Perilaku ini berbeda dari Win32 ExitThread
API.) Oleh karena itu, ketika Anda menggunakan _beginthread
dan _endthread
, jangan secara eksplisit menutup handel utas dengan memanggil API Win32 CloseHandle
.
Seperti API Win32 ExitThread
, _endthreadex
tidak menutup handel utas. Oleh karena itu, ketika Anda menggunakan _beginthreadex
dan _endthreadex
, Anda harus menutup handel utas dengan memanggil API Win32 CloseHandle
.
Catatan
_endthread
dan _endthreadex
menyebabkan destruktor C++ tertunda di utas tidak dipanggil.
Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.
Persyaratan
Fungsi | Header yang diperlukan |
---|---|
_endthread |
<process.h> |
_endthreadex |
<process.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Pustaka
Versi multithreaded pustaka run-time C saja.
Contoh
Lihat contoh untuk _beginthread
.