Главная страница
    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.036 c
1-1099135852
Wish
2004-10-30 15:30
2004.11.14
Подскажите код преобразования Integer в Double


3-1097559368
wild_arg
2004-10-12 09:36
2004.11.14
Вычисление процента


14-1098870383
Tor
2004-10-27 13:46
2004.11.14
Установка Apollo SQL 6.0


3-1097726684
Belkova
2004-10-14 08:04
2004.11.14
Экспорт в excel


6-1094532299
BLABLA
2004-09-07 08:44
2004.11.14
Netsend от другово имени.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский