Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Contoh berikut menunjukkan bagaimana handler penghentian digunakan untuk memastikan bahwa sumber daya dirilis saat eksekusi isi kode yang dijaga berakhir. Dalam hal ini, utas menggunakan fungsiEnterCriticalSection untuk menunggu kepemilikan objek bagian penting. Ketika utas selesai menjalankan kode yang dilindungi oleh bagian penting, alur harus memanggil fungsi LeaveCriticalSection untuk membuat objek bagian penting tersedia untuk utas lain. Menggunakan handler penghentian menjamin bahwa hal ini akan terjadi. Untuk informasi selengkapnya, lihat objek bagian penting.
LPTSTR lpBuffer = NULL;
CRITICAL_SECTION CriticalSection;
// EnterCriticalSection synchronizes code with other threads.
EnterCriticalSection(&CriticalSection);
__try
{
// Perform a task that may cause an exception.
lpBuffer = (LPTSTR) LocalAlloc(LPTR, 10);
StringCchCopy(lpBuffer, 10, TEXT("Hello"));
_tprintf(TEXT("%s\n"),lpBuffer);
LocalFree(lpBuffer);
}
__finally
{
// LeaveCriticalSection is called even if an exception occurred.
LeaveCriticalSection(&CriticalSection);
}