Форум: "WinAPI";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];
Вниз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 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.041 c