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