Форум: "Основная";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];
ВнизСовместный доступ двух потоков к объекту TQueue Найти похожие ветки
← →
Balkon (2004-11-17 14:01) [0]Добрый день, Уважаемые! Подскажите пожалуйста, корректно ли использовать объект TQueue, при совместном доступе к нему из двух потоков(основного и вторичного), помещая обращения к очереди Push, Pop, Peek в критические секции? Заранее спасибо.
Код вроде следующего:
var P: PSomeData;
...
EnterCriticalSection(MainCS);
Queue.Push(P);//В основном потоке
LeaveCriticalSection(MainCS);
...
EnterCriticalSection(SecondaryCS);
SomeData := PSomeData(Queue.Peek)^;//Во вторичном потоке
LeaveCriticalSection(SecondaryCS);
...
← →
Digitman © (2004-11-17 14:04) [1]не знаю, что из себя представляет этот класс-очередь, но в первом приближении - достаточно корректно.
а в связи с чем возник вопрос ?
← →
Balkon (2004-11-17 14:12) [2]Спасибо.
[а в связи с чем возник вопрос ?]
Пишу оболочку для некой железяки, подключенной через com-порт. В очередь помещаю команды, которые затем пишутся в порт вторичным потоком. Имеются определенные баги... Ищу причину. Попытаюсь конкретнее описать проблему позже, если не найду причин, а сейчас покопаю в другом месте.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.048 c