![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Построение очереди [D6, WinXP]
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. Что тогда может быть (прерывания ведь не запрещены)? Смогут ли правльно обработаться обе записи (добавление, корректировка, удаление).