Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.14;
Скачать: CL | DM;

Вниз

Обмен данными между приложениями   Найти похожие ветки 

 
m.alex   (2004-10-27 17:32) [0]

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

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

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


 
TUser ©   (2004-10-27 17:37) [1]


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

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


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

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


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


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


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


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

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


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


> TMultiReadExclusiveWriteSynchronizer

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

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


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

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


 
WondeRu ©   (2004-10-27 18:11) [7]

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

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

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


 
Defunct ©   (2004-10-27 18:22) [8]

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

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


 
alena.svt ©   (2004-10-27 22:02) [9]

a CopyData никак?


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

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

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

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


 
Yanis ©   (2004-10-27 23:37) [11]

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



Страницы: 1 вся ветка

Текущий архив: 2004.11.14;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.05 c
1-1098872297
MikePol
2004-10-27 14:18
2004.11.14
TChart


4-1096898356
Delphis
2004-10-04 17:59
2004.11.14
Смена обоев


1-1099376510
Senti
2004-11-02 09:21
2004.11.14
Как применить стиль XP только для 1 компонента на форме ?


3-1097590398
}|{yk
2004-10-12 18:13
2004.11.14
С какой радости Borland в DB.pas написала такое?


6-1092479905
cyborg
2004-08-14 14:38
2004.11.14
TWebBrowser