Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как НЕ читать дважды данные из файла? подскажите как лучше сделать 
V
    Опции темы
Экскалупатор
Дата 19.9.2009, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 2
Всего: 24



Есть такая ситуация, у меня есть две формы, и эти обе формы должны работать с одними и теми же данными, хранящимися в файле XML. у меня есть класс который читает эти данные, и получается что мне нужно в каждой форме сделать экземпляр класса, читающего нужные мне данные, получается что выполняется ненужная работа. подскажите как этого избежать. у меня есть предположение, что нужно сделать класс хранящий результаты чтения XML файла, и кидать потом этот класс между формами. но может есть какой то иной способ? меня именно логика этого процесса интересует. заранее всем спасибо.
PM MAIL ICQ   Вверх
Akina
Дата 19.9.2009, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 1
Всего: 454



Цитата(Экскалупатор @  19.9.2009,  12:10 Найти цитируемый пост)
мне нужно в каждой форме сделать экземпляр класса

А вот это-то зачем? сделай класс на уровне приложения и грузи его на старте. А обе формы пусть обращаются к этому одному экземпляру, уже загруженному на старте. А проверить, есть в памяти нужные данные или их надо подчитать с диска - это уже сабота самогО класса.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Skynin
Дата 19.9.2009, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 359
Регистрация: 1.7.2007
Где: Харьков

Репутация: нет
Всего: 10



Общие рассуждения:

1. Операционная система вполне хорошо кеширует операции чтения-записи файлов. Поэтому чем ближе повторное чтение, тем вероятней что файл еще в памяти. Если на общую скорость выполнения "чтение" и инициализация на основе этих данных каких-либо объектов - влияние мизерное - то и незачем усложнять код, читай повторно.

2. Если файл большой (вряд ли ОСь будет держать его в памяти после первого чтения) или парсинг файла долгий - можно кешировать результаты первого парсинга самому. 

3. Если результаты парсинга нужны только при начале работы системы и/или занимают много места, то имеет смысл при первом парсинге запомнить уже проинициализированный объект, а потом его(или на его основе) клонировать.


Это сообщение отредактировал(а) Skynin - 19.9.2009, 18:48
PM MAIL WWW ICQ Skype GTalk YIM MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0461 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.