Главная страница
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.023 c
1-1083497810
XSteel
2004-05-02 15:36
2004.05.16
Динамические массивы в Delphi 1 и структуры > 65кил


3-1082704510
huyone
2004-04-23 11:15
2004.05.16
Индексировать файл Foxpro DBASE III из программы?


1-1083328634
Newbie
2004-04-30 16:37
2004.05.16
Про DLL


6-1080394510
csr
2004-03-27 16:35
2004.05.16
SOCKS PROXY


1-1083318130
siriusP
2004-04-30 13:42
2004.05.16
Как запретить класть на TPanel компоненты?