![]() |
|
Модераторы: gambit, Partizan |
![]()
|
|
| Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 2 Всего: 24 |
Есть такая ситуация, у меня есть две формы, и эти обе формы должны работать с одними и теми же данными, хранящимися в файле XML. у меня есть класс который читает эти данные, и получается что мне нужно в каждой форме сделать экземпляр класса, читающего нужные мне данные, получается что выполняется ненужная работа. подскажите как этого избежать. у меня есть предположение, что нужно сделать класс хранящий результаты чтения XML файла, и кидать потом этот класс между формами. но может есть какой то иной способ? меня именно логика этого процесса интересует. заранее всем спасибо.
|
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 1 Всего: 454 |
А вот это-то зачем? сделай класс на уровне приложения и грузи его на старте. А обе формы пусть обращаются к этому одному экземпляру, уже загруженному на старте. А проверить, есть в памяти нужные данные или их надо подчитать с диска - это уже сабота самогО класса. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Skynin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 359 Регистрация: 1.7.2007 Где: Харьков Репутация: нет Всего: 10 |
Общие рассуждения:
1. Операционная система вполне хорошо кеширует операции чтения-записи файлов. Поэтому чем ближе повторное чтение, тем вероятней что файл еще в памяти. Если на общую скорость выполнения "чтение" и инициализация на основе этих данных каких-либо объектов - влияние мизерное - то и незачем усложнять код, читай повторно. 2. Если файл большой (вряд ли ОСь будет держать его в памяти после первого чтения) или парсинг файла долгий - можно кешировать результаты первого парсинга самому. 3. Если результаты парсинга нужны только при начале работы системы и/или занимают много места, то имеет смысл при первом парсинге запомнить уже проинициализированный объект, а потом его(или на его основе) клонировать. Это сообщение отредактировал(а) Skynin - 19.9.2009, 18:48 |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Разработка Windows Forms | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |