Работа с мютекси в OOP стил (Delphi, TMutex), Стрелец Кодер
Mutex механизмът е проектиран да гарантира, че не повече от една нишка може да работи едновременно с ресурс.
Има два начина за работа с мютекси в Delphi.
- Използването на "обичайно" ниско ниво (WinAPI) функции (CreateMutex и др.).
Този метод работи в почти всички версии, отдавна е овладян от програмисти и не се нуждае от допълнително описание (има повече от достатъчно материали по тази тема в Delphi в Интернет). Нека го наречем „класическия начин“; - Използване на класTMutex.
Този клас се появи за първи път във версията XE. Той осигурява опростен интерфейс за работа с мютекси и почти напълно елиминира необходимостта от използване на функции на ниско ниво при работа с тях.
Помислете за втория начин.
Класът TMutex е описан в модула System.SyncObjs. Неговият конструктор има три претоварвания.
Най-предпочитаното претоварване за създаване на мютекс е:
- Първият параметър (TSecurityAttributes) е указател за записване на атрибути на защитата (в най-простия случай е разрешено нула).
- Вторият параметър (Boolean) определя дали нишката, създала мутекса, ще стане негов собственик;
- Третият параметър (String) е уникалното име на мютекса.
- Четвъртият параметър (Boolean) е способността на mutex да работи с COM компоненти на STA (апартамент с една нишка). Този параметър е по избор и по подразбиране е false.