Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Построение очереди [D6, WinXP]


Страницы:   1 2

dm37 ©   (2008-02-18 13:20:00) 

Подскажите можно ли доверится TStringList для формирования очереди (например, команд). Доступ к очереди не послеовательный,а произвольный. Или надо самому, каким либо образом контролировать целостность списка?


dm37   (2008-02-18 14:54:00) [1]

Всем спасибо, остановился на критических секциях


Palladin   (2008-02-18 14:07:00) [2]


> [20] dm37   (18.02.08 13:59)

а тут то чем сложнее? заблокировал ресурс, отработал с ним, разблокировал ресурс...


Сергей М.   (2008-02-18 14:02:00) [3]


> На C для микроконтроллеров проще: запретил прерывания -
> выполнил код - восстановил прерывания. А в Windows пока
> с эти не сталкивался


Прерывания-то тут причем ?


dm37   (2008-02-18 13:59:00) [4]

возможно это будет массив и записи, надеялся что TStringList сам сможет правильно обработать записи.
На C для микроконтроллеров проще: запретил прерывания - выполнил код - восстановил прерывания. А в Windows пока с эти не сталкивался.


Palladin   (2008-02-18 13:51:00) [5]

и зачем дело встало... вперед... несовсем правда понятно почему именно TStringList для формирования оченреди "например комманд"...


dm37   (2008-02-18 13:50:00) [6]

сейчас очередь реализована в виде таблицы на SQL Server.
хочется освободить его от этого.


trubin   (2008-02-18 13:46:00) [7]


> а что такое "критические секции"?

http://www.google.com/search?hl=en&q=%D1%81%D0%B8%D0%BD%D1%85%D1%80%D0%BE%D0%BD%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F+%D0%BA%D1%80%D0%B8%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5+%D1%81%D0%B5%D0%BA%D1%86%D0%B8%D0%B8&btnG=Google+Search


MBo   (2008-02-18 13:45:00) [8]

Посмотри в classes.pas реализацию TThreadList


Palladin   (2008-02-18 13:45:00) [9]


> [13] dm37   (18.02.08 13:43)

то есть уже все сказал... ну ладно...


> а что такое "критические секции"?

TCriticalSection

а использовать можно и TThreadList


trubin   (2008-02-18 13:43:00) [10]

Раз уж начал заниматься подобными вещами. Полезно будет почитать Рихтера.


dm37   (2008-02-18 13:43:00) [11]

что именно не ясно?
а что такое "критические секции"?


Джо   (2008-02-18 13:40:00) [12]

> [10] dm37   (18.02.08 13:38)
> может что-нибудь посоветуете, как это можно реализовать?

Если не объяснишь задачу, то может постигнуть судьба сантехника Потапова из известного детского стишка :)


trubin   (2008-02-18 13:39:00) [13]


> может что-нибудь посоветуете, как это можно реализовать?


критические секции


dm37   (2008-02-18 13:38:00) [14]

может что-нибудь посоветуете, как это можно реализовать?


Palladin   (2008-02-18 13:30:00) [15]

уже интересней... дальше в гестапо играть будем? может еще чего недосказал?


Сергей М.   (2008-02-18 13:30:00) [16]


> dm37   (18.02.08 13:28) [6]


Без синхронизации довериться нельзя.
А встроенную синхронизацию стринглист не подразумевает и не реализует.


Palladin   (2008-02-18 13:30:00) [17]


> [4] dm37   (18.02.08 13:27)

каких таких прерываний? int 8 чели? сообщей может? расслабся, одним потоком может обрабатываться только одно сообщение...


dm37   (2008-02-18 13:28:00) [18]

да прав из нескольких потоков (TThread)


Palladin   (2008-02-18 13:27:00) [19]

сдается мне что "произвольный" эт значит из нескольких потоков (TThread)


dm37   (2008-02-18 13:27:00) [20]

может получится так, что например, из двух прерываний таймера одновременно происходит обращение к одному StringList. Что тогда может быть (прерывания ведь не запрещены)? Смогут ли правльно обработаться обе записи (добавление, корректировка, удаление).


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо