Вверх ↑
Разработчик
Ответов: 26324
Рейтинг: 2147
#1: 2012-02-21 14:21:36 ЛС | профиль | цитата
login, в примере, при создании класса компонента, создается глобальный список критических секций, где хранятся указатели на параметры секций


var CSList: PStrListEx;

initialization CSList := NewStrListEx;

Когда другой поток пытается выйти на секцию с нужным именем, то имя ищется в списке и по найденому индексу вытаскивается указатель на параметры, откуда и нужны @ и ^, если секции не найдена, то она создается. По этим параметрам и работаю входы и выходы из секций. У тебя в примере секция создается в пределах одного класса, вот и надо ее каждый раз инициализировать. Секции надо инициализиовать в пределах всего приложения, как это сделано в компоненте
карма: 22

1
Голосовали:login