Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.16;
Скачать: CL | DM;

Вниз

InitializeCriticalSection   Найти похожие ветки 

 
GanibalLector ©   (2004-04-01 03:12) [0]

Какой тип параметра  LPCRITICAL_SECTION???Что в var писать не пойму.Приму в дар исходник по этому поводу.
Спасибо.


 
Digitman ©   (2004-04-01 08:11) [1]


> Приму в дар исходник по этому поводу


Борланд тебе уже "подарил" исходник класса TCriticalSection в модуле SyncObjs. Критическая секция там инициализируется прямо в конструкторе класса. Там и смотри.
"Чего ж тебе еще надобно, старче ?" (с)


 
N170   (2004-04-01 10:54) [2]

LPCRITICAL_SECTION - это указатель на выделенную (тобою) структуру CRITICAL_SECTION, только и всего


 
GanibalLector ©   (2004-04-01 12:25) [3]

Все равно не пойму,млин!!!

Вот из Рихтера пример(стр.205):
TCHAR g_cChars[100]; // разделяемый ресурс
CRITICAL_SECTION g_csChars; // защищает g_cChars

Вот и мне нужно защитить предположим переменную типа string.
Посмотрите,правильно ли я делаю(я думаю что нет!!!)????
У меня переменная  st типа string,а не структура данных защищенная критической секцией(как у Рихтера)!!

var
 Form1: TForm1;
 FSection: TRTLCriticalSection;
 st:string;

InitializeCriticalSection(FSection);// до создания потоков

// в потоке
...
EnterCriticalSection(FSection);
st:=st+"1";
LeaveCriticalSection(FSection);
...


 
BiN ©   (2004-04-01 12:35) [4]

Посмотрите,правильно ли я делаю(я думаю что нет!!!)????

правильно, только в конце DeleteCriticalSection не забудь.

У меня переменная  st типа string,а не структура данных защищенная критической секцией(как у Рихтера)!!

долго смеялся :)


 
GanibalLector ©   (2004-04-01 12:40) [5]

2 bin
Ну так в его коде
TCHAR g_cChars[100]; // разделяемый ресурс
CRITICAL_SECTION g_csChars; // защищает g_cChars
явное указание того,что g_cChars защищен,а у мя нет.
У мя все раздельно.Вот поэтому и спрашиваю.

И еще, FSection и st может вынести в privat???


 
BiN ©   (2004-04-01 12:59) [6]

переменная FSection должна быть глобальной, общедоступной для всех синхронизируемых потоков. Грубо говоря, когда ты вызываешь EnterCriticalSection(FSection) в одном потоке, другой поток при вызове этой же функции будет бесконечно долго ожидать, когда первый поток вызовет LeaveCriticalSection(FSection). Усек?


 
GanibalLector ©   (2004-04-01 18:27) [7]

Пасибки,кстати,в Тейлоре нашел примерЧИК.



Страницы: 1 вся ветка

Текущий архив: 2004.05.16;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.022 c
1-1083227723
senya
2004-04-29 12:35
2004.05.16
PDF не понимает русский язык, выдает "иероглифы"


7-1080772670
Colonel
2004-04-01 02:37
2004.05.16
System menu


3-1082221283
CyBeR
2004-04-17 21:01
2004.05.16
Как создать список просмотра DbGrid????


7-1074950103
Angel_Forever
2004-01-24 16:15
2004.05.16
Слежка за запускаемыми на ПК процессами


14-1083060913
syte_ser78
2004-04-27 14:15
2004.05.16
ping