使用終止處理程式
下列範例示範如何使用終止處理程式,以確保在執行受防護程式代碼終止時釋放資源。 在此情況下,線程會使用 EnterCriticalSection 函式來等候重要區段 對象的擁有權。 當線程完成執行受重要區段保護的程式代碼時,它必須呼叫 LeaveCriticalSection 函式,讓重要區段 物件可供其他線程使用。 使用終止處理程式可確保會發生此情況。 如需詳細資訊,請參閱 重要章節物件。
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);
}