Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I följande exempel visas hur en avslutningshanterare används för att säkerställa att resurser frigörs när körningen av en skyddad kodtext avslutas. I det här fallet använder en tråd funktionen EnterCriticalSection för att vänta på ägarskap för ett kritiskt avsnittsobjekt. När tråden är klar med att köra koden som skyddas av det kritiska avsnittet måste den anropa funktionen LeaveCriticalSection för att göra det kritiska avsnittsobjektet tillgängligt för andra trådar. Att använda en termineringshanterare garanterar att detta sker. För mer information, se kritiska sektionsobjekt.
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); 
}