Открытие и закрытие компактного фреймворка мультиформного приложения

1

Поэтому я некоторое время просматривал эту тему о том, как лучше всего это сделать. Я работаю с сканирующим оружием и создаю приложение для одного. Мое приложение имеет множество различных экранов меню, как вы можете видеть на картинке. Изображение 174551 Мое приложение, похоже, замерзает на одном сканирующем пистолете, но не в другом, хотя у них почти такое же оборудование. Я подумал, что, возможно, это потому, что я не закрываю ни одну из моих форм после создания. Я создаю экземпляр внутри формы при вызове, а затем вызываю метод show.

. AssetsMenu.GetInstance() Show();

Когда я закончил с формой или хочу показать следующую форму, я вызываю форму метода Скрыть в этой форме.

this.Hide();

Я об этом неправильно, или это лучший способ повторного использования форм. Должен ли я использовать AssetsMenu.GetInstance(). Закройте() вместо этого и просто создайте новую форму, когда мне нужно будет использовать это снова?

Пожалуйста помоги...

Теги:
compact-framework

2 ответа

1
Лучший ответ

Это действительно вопрос памяти. Должны ли вы их закрыть? Если у вас недостаточно памяти для их одновременного хранения, тогда да. Обычно я запускаю "службу памяти" во всех моих приложениях, которые выводят в условия отладочной памяти, особенно когда они становятся критическими. Я бы предложил сделать что-то подобное и посмотреть на загрузку памяти устройства. Откройте все формы и посмотрите, где он находится. Если вы действительно высоки (например, 95% +), то у вас наверняка возникнет проблема.

Там может быть целый ряд других вещей, связанных со всасыванием памяти, поэтому он может быть не связан с формами вообще.

Лично я использовал бы стек для Форм, и, когда пользователь будет выполнять резервное копирование, я бы закрыл и избавился от них, но большинство приложений, над которыми я работаю, имеют намного больше форм, которые вы показываете.

В конце концов, вам нужно будет профилировать и тестировать свое приложение на своих устройствах. Там нет жесткого и быстрого правила, в котором говорится, что вам нужно закрыть все Формы.

0

У меня была такая же проблема с моим приложением CF 4.5. Вместо использования нескольких форм у меня есть только одна форма и несколько невидимых "панелей" друг над другом (их можно найти в панели инструментов VS). В начале приложения отображается только панель "LogIn" (и, следовательно, ее элементы управления). После того, как пользователь нажимает кнопку "Вход в систему" и проверяется, я устанавливаю эту панель на невидимую, а следующую - на видимую и так далее...

Я не думаю, что это самый эффективный способ, но он решил мою проблему.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню