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

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

Еще раз про сервер и массив... [D6, Win2k, WinXP]


NorthMan ©   (2006-01-11 14:30:00) 

Не понял, почему закрыли обсуждение, но вопрос остался.
Нужно ли делать синхронизацию, и если да, то как правильнее, когда клиенты подключаются к серверу и читают значение из массива (не весь массив).


Digitman   (2006-01-11 15:09:00) [1]

если предполагается, что размер и содержимое массива не изменяется на всем протяжении активности сервера, синхронизация не требуется.


NorthMan   (2006-01-11 15:04:00) [2]

Да я не спорю, все так, клиенты не причем. Неточно написал. Забудем про клиентов. Правильно ли будет в OnExecute выполнять перебор массива, или лучше вынести это в отдельную функцию и вызывать AThread.Synchronize(GetFromArray)?


Digitman   (2006-01-11 14:45:00) [3]


> В методе OnExecute сервера пишу перебор по элементам массива,
>  найдя нужный, отдаю клиенту. Все. Или это чему-то противоречит?
>


это противоречит хотя бы этому твоему утверждению :


> клиенты .. читают значение из массива


в методе OnExecute нет никаких "клиентов", код в теле метода - это код программы-СЕРВЕРА, а не программы-клиента.


NorthMan   (2006-01-11 14:37:00) [4]

А в чем проблема?
В методе OnExecute сервера пишу перебор по элементам массива, найдя нужный, отдаю клиенту. Все. Или это чему-то противоречит?


Slym   (2006-01-11 14:36:00) [5]

Синхронизация НЕОБХОДИМА при доступе к объекту из разных потоков, например критические секции (TCriticalSection из SyncObjs)


Digitman   (2006-01-11 14:35:00) [6]


> NorthMan   (11.01.06 14:30)


> почему закрыли обсуждение


Потому что тебе про фому говорят, а ты все про ерему гнешь.

Каким образом твои клиенты умудряются "читать значения из массива", который объявлен и существует в совершенно другой программе ?

Продемонстрируй в коде ..


Наверх

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