Другие языки программирования и технологии
обмен данными C# и надежность жесткого диска
Есть две программы. Необходимо организовать между ними обмен данными. Предполагаю использовать какой нибудь общий файл. Собственно вопрос, а так можно делать? Так как файл будет перезаписываться каждые секунды две. Если есть какой нибудь другой вариант, озвучьте пожалуйста.
Почитайте на тему обмена сообщениями между приложениями вообще. Их много. Сокеты, файлы, общая база данных и пр. ..Все от условий зависит
Для больших объемов изменяющихся данных - сокеты, для небольших и статичных - файлы общие (временные в заранее известном формате) и так далее
Для больших объемов изменяющихся данных - сокеты, для небольших и статичных - файлы общие (временные в заранее известном формате) и так далее
Ринас Фарсыев
не успею до завтра доделать (
Через файл это как-то.. . Э-э-э-э.. . Непрофессионально, мягко говоря, и чревато излишней глюкавостью.
Я бы рекомендовал веб-сервисы. Кури мануалы по SOA.
Я бы рекомендовал веб-сервисы. Кури мануалы по SOA.
каждые 2 секунды? не думаю работа с общим файлом позволит вам такую скорость.
как синхронизация будет проходить при записи? ведь покуда файл открыт одним приложением для записи, второе приложение будет сидеть курить бамбук покуда файл не закроется..
как синхронизация будет проходить при записи? ведь покуда файл открыт одним приложением для записи, второе приложение будет сидеть курить бамбук покуда файл не закроется..
Ринас Фарсыев
пускай курит, сделаю два файлика. И будет норм. Но вопрос не в том
V.i.p Alik
Это не так, многие программы прекрасно работают с совместно открытыми файлами, хотя там конечно есть тонкости.
Смотря какой файл. Если относительно маленький - то 2 секунды - это большой промежуток. Бояться, что диск испортится не надо, все ОС имеют механизмы кеширования и часто используемый файл скорее всего будет обрабатываться в памяти. Не думаю, что надо о таких вещах задумываться.. .
С большим файлом проблема будет только в скорости работы - все-таки запись-чтение довольно медленная операция.
При совместном доступе, естественно, возникает вопрос синхронизации, то есть надо обеспечить механизм, чтобы читающая программа читала только тогда, когда записывающая закончила запись, чтобы не было "недозаписанных" данных. В некоторых системах программирования такие вещи встроены, например в настолькных СУБД, типа Аксеса, ФоксПро и т. п.
Ну а насчет других способов - думаю можно что-нибудь найти. Разделяемая память, использование COM+ объектов, обмен с помощью портов и сетевых протоколов - так, что в голову сразу приходит.
С большим файлом проблема будет только в скорости работы - все-таки запись-чтение довольно медленная операция.
При совместном доступе, естественно, возникает вопрос синхронизации, то есть надо обеспечить механизм, чтобы читающая программа читала только тогда, когда записывающая закончила запись, чтобы не было "недозаписанных" данных. В некоторых системах программирования такие вещи встроены, например в настолькных СУБД, типа Аксеса, ФоксПро и т. п.
Ну а насчет других способов - думаю можно что-нибудь найти. Разделяемая память, использование COM+ объектов, обмен с помощью портов и сетевых протоколов - так, что в голову сразу приходит.
Лучше общая база данных скьюлайт.
На киберфоруме был готовый исходник в разделе по ВБ. НЕТ в факью. Ищите.
На киберфоруме был готовый исходник в разделе по ВБ. НЕТ в факью. Ищите.
Похожие вопросы
- Как самому восстановить данные с жесткого диска ноутбука?
- Утеряны данные с жёсткого диска.
- Ноутбук видит внешний жесткий диск но он не открывается. Что делать? Как спасти данные с диска?
- Обмен данными между формами C#
- Обмен данными между datagrid viewи базой данных
- не могу загрузить винду-через БИОС--после f10-и ентер--начинает грузиться с жесткого диска-подскажите какая настройка
- возможен ли с помощь акронис 10 версии переместить все содержимое с лок. диска С в более свободное жесткий диск,,,
- Не запускается жесткий диск!!!
- определение объема жесткого диска на C++. просьба написать кусок кода. функцию
- Разделы жёсткого диска.Писать по теме и знающим.