Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az alábbi példa bemutatja, hogyan történik a leállításkezelő használata az erőforrások felszabadításához, amikor egy védett kódtörzs végrehajtása leáll. Ebben az esetben egy szál az EnterCriticalSection függvénnyel várja meg a kritikus szakaszobjektum tulajdonjogát. Ha a szál befejezte a kritikus szakasz által védett kód végrehajtását, meg kell hívnia a LeaveCriticalSection függvényt, hogy a kritikus szakasz objektuma elérhető legyen más szálak számára. A megszüntetési kezelő használata garantálja, hogy ez megtörténik. További információ: kritikus szakaszobjektumok.
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);
}