共用方式為


使用終止處理程式

下列範例示範如何使用終止處理程式,以確保在執行受防護程式代碼終止時釋放資源。 在此情況下,線程會使用 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); 
}