Главная страница
    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.46 MB
Время: 0.031 c
14-1098982273
panov
2004-10-28 20:51
2004.11.14
Нарочно не придумаешь.


9-1088251752
Proger
2004-06-26 16:09
2004.11.14
Работа с памятью


4-1096825772
avs
2004-10-03 21:49
2004.11.14
В старых мониторах


1-1098801779
Виктор
2004-10-26 18:42
2004.11.14
Форма из Bpl вызывает ошибку.


1-1099311228
Артем К.
2004-11-01 15:13
2004.11.14
Компонент-панель для отображения открытых окошек (как в 1С).





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский