Страница 148 из 238
CSingleLock
Объекты класса
CSingleLock используются для контроля доступа к ресурсам в приложении, использующем несколько потоков. Для работы с классами синхронизации
CSemaphore,
CMutex,
CCriticalSection и
CEvent необходимо создать объект класса
CSingleLock или
CMultiLock для ожидания и освобождения объекта класса синхронизации. Объект класса
CSingleLock используется в том случае, когда необходимо работать только с одним объектом класса синхронизации. Объект класса
CMultiLock используется в том случае, когда необходимо одновременно работать с несколькими объектами классов синхронизации. Для использования объект класса
CSingleLock необходимо вызвать его конструктор в функции-члене класса контролируемого ресурса. После этого вызывается функция
IsLocked для определения того, доступен ли данный ресурс. Если он доступен, то можно продолжать выполнение функции-члена класса контролируемого ресурса. Если ресурс недоступен, нужно или подождать его освобождения, или аварийно завершить данную функцию. После того, как использование ресурса будет завершено, необходимо или вызвать функцию
Unlock, если предполагается дальнейшее использование объекта класса
CSingleLock, или уничтожить объект данного класса. Класс
CSingleLock не имеет базового класса. Описание данного класса содержится в файле заголовка afxmt.h.