_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

Function 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.

Baca juga

Kontrol proses dan lingkungan
_beginthread, _beginthreadex