Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.11.14;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.034 c
1-1098873662
Leonid
2004-10-27 14:41
2004.11.14
TMainmenu


14-1098430322
NewDelpher
2004-10-22 11:32
2004.11.14
Умение водить автомобиль


14-1098685930
snake1977
2004-10-25 10:32
2004.11.14
Вопрос новичка


14-1098794537
Delphin
2004-10-26 16:42
2004.11.14
При переносе текста получаю "?? ???"


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





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