|
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО! |
|
|
Using Critical Section Objects
The following example shows how a thread initializes, enters, and leaves a critical section. As with the mutex example (see Using Mutex Objects), this example uses the try-finally structured exception-handling syntax to ensure that the thread calls the LeaveCriticalSection function to release its ownership of the critical section object.
CRITICAL_SECTION GlobalCriticalSection;
// Initialize the critical section. InitializeCriticalSection(&GlobalCriticalSection);
// Request ownership of the critical section. try { EnterCriticalSection(&GlobalCriticalSection); // Access the shared resource. } finally { // Release ownership of the critical section. LeaveCriticalSection(&GlobalCriticalSection); }
|
Пригласи друзей и счет твоего мобильника всегда будет положительным! |
|
Пригласи друзей и счет твоего мобильника всегда будет положительным! |
Использование Критических Объектов Секции
Следующий пример показывает как резьба инициализирует, вводит, и оставляет критическую секцию. Как и пример mutex (смотри Использование Объектов Mutex), этот пример использует пытаться-исключительную обработку наконец структурного синтаксиса, чтобы проверять, что резьба называет функцию LeaveCriticalSection, чтобы выпускать свою собственность на критический объект секции.
CRITICAL_SECTION GlobalCriticalSection;
// Инициализируйте критическую секцию. InitializeCriticalSection(&GlobalCriticalSection);
// Собственность Просьбы на критическую секцию. попытка { EnterCriticalSection(&GlobalCriticalSection); // Доступ коллективный ресурс. } наконец { // Собственность Выпуска на критическую секцию. LeaveCriticalSection(&GlobalCriticalSection); }
|
|
|
|