Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Následující příklad ukazuje, jak se obslužná rutina ukončení používá k zajištění uvolnění prostředků po ukončení provádění chráněného bloku kódu. V tomto případě vlákno používá funkci EnterCriticalSection k čekání na vlastnictví objektu kritické sekce. Jakmile vlákno dokončí provádění kódu chráněného kritickým oddílem, musí volat funkci LeaveCriticalSection, aby byl objekt kritického oddílu dostupný pro ostatní vlákna. Použití ukončovací obslužné rutiny zaručuje, že k tomu dojde. Další informace naleznete v tématu objekty kritické sekce.
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);
}