Главная страница
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
8-1076946984
Grinder
2004-02-16 18:56
2004.05.16
Проиграть мелодию 10 раз


8-1077020922
Gast1
2004-02-17 15:28
2004.05.16
Как создать анимацию для кнопки


14-1082647615
panov
2004-04-22 19:26
2004.05.16
Алгоритм перноса слов в строке.


6-1079982247
3APA3A
2004-03-22 22:04
2004.05.16
как сделать time-out на recvfrom?


1-1083326814
Ivolg
2004-04-30 16:06
2004.05.16
Линейка