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

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

Обмен данными между приложениями [D7, WinXP]


m.alex ©   (2004-10-27 17:32:00) 

Мастера посоветуйте пожалуйста как лучше решить след. задачу:

Есть 3  разных (по функциональности) приложения. Все ети приложения должны иметь общие данные. Каждое приложение в любой момент может прочитать или изменить данные! Скорость изменения данных в некоторых случаях может достигать до 10 изменений в секунду. Обьем общих данных - порядка 100к.
Думал сделать через file-mapping и в каждом приложении по таймеру синхронизировать данные!

Как лучше сделать?


Yanis   (2004-10-27 23:37:00) [1]

The WM_COPYDATA message is sent when an application passes data to another application.


Игорь Шевченко   (2004-10-27 23:06:00) [2]

CreateFileMapping во всех трех приложениях. Пример есть в Program Files\Borland\Delphi\Demos\IPCDemos

alena.svt ©   (27.10.04 22:02) [9]

CopyData смысла нету.


alena.svt   (2004-10-27 22:02:00) [3]

a CopyData никак?


Defunct   (2004-10-27 18:22:00) [4]

m.alex   (27.10.04 17:45) [5]

Можно сделать четвертое приложение - монитор, которое будет хранить общие данные. А ресурсами этого монитора будут функции записи и чтения.


WondeRu   (2004-10-27 18:11:00) [5]

m.alex   (27.10.04 17:32)
и в каждом приложении по таймеру синхронизировать данные

зачем, если у тебя уже есть общая память???

или ты хочешь в промежуточных буферах чего-то хранить, а потом их синхронизировать с общей памятью? эт делать не стоит.


MBo   (2004-10-27 17:47:00) [6]

file-mapping - хороший выбор


m.alex   (2004-10-27 17:45:00) [7]


> TMultiReadExclusiveWriteSynchronizer

Это одно из средств разраничения доступа.
Use TMultiReadExclusiveWriteSynchronizer to guard access to memory in a multi-threaded application.

а мне надо знать где и как лучшереализовать общие данные обьемом примерно в 100к.


Добрый дядька   (2004-10-27 17:43:00) [8]

m.alex   (27.10.04 17:41) [3]
Ну так ты сам уже себе ответил. Не думаю, что лучше можно придумать.


m.alex   (2004-10-27 17:41:00) [9]


> Обязательно надо подумать о разграничении доступа к этим
> данным


ето обязательно будет. я в курсе. главное: как реализовать общие данные?


MBo   (2004-10-27 17:39:00) [10]

одно из готовых средств:
TMultiReadExclusiveWriteSynchronizer


TUser   (2004-10-27 17:37:00) [11]


> Думал сделать через file-mapping и в каждом приложении по
> таймеру синхронизировать данные!

Обязательно надо подумать о разграничении доступа к этим данным. Например, завести мьютекс, и только когда его получается 'получить' - писать, иначе - ждать. А то будет бардак с данными.


Наверх

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