Windows forms окно ошибки

Обновлено: 06.07.2024

вы запустили Process Explorer или Диспетчер задач Windows, чтобы посмотреть на объекты GDI, дескрипторы, потоки и пользовательские объекты? Если нет, выберите эти столбцы для просмотра (Диспетчер задач выберите вид->выбрать столбцы. Затем запустите приложение и посмотрите на эти столбцы для этого приложения и посмотрите, действительно ли один из них растет.

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

здесь ссылка об этом, что может быть полезным.

Удачи!

эта проблема почти всегда связана с количеством объектов GDI, количеством объектов пользователя или количеством дескрипторов и обычно не из-за состояния нехватки памяти на вашем компьютере.

когда я отслеживаю одну из этих ошибок, я открываю ProcessExplorer и наблюдаю за этими столбцами: дескрипторы, потоки, объекты GDI, объекты пользователя, частные байты, виртуальный размер и рабочий набор.

(по моему опыту, проблема обычно заключается в утечке объекта из-за обработчика событий, удерживающего объект и предотвращение его утилизации.)

Я думаю, что это обычно связано с компьютером, у которого заканчивается память, поэтому он не может создавать больше оконных ручек. Обычно Windows начинает показывать какое-то странное поведение в этот момент.

Я добавил чек, который заставляет его работать.

это всегда так, но форма выдает ошибку без нее. Кстати, моя ручка составляет около 4,9 миллиона

Я получил ту же ошибку в моем приложении.Я загружаю много элементов управления в одном page.In нажмите кнопку событие я очищаю элементы управления.очистка элементов управления не освобождает элементы управления от memory.So утилизируйте элементы управления из памяти. Я только что прокомментировал управление.очистите метод() и включите несколько строк кода для удаления элементов управления. Что-то вроде этого

для каждого ЦТЛ в качестве контроля в экземпляре коллекции controlcollection

ctl.dispose ()

далее

предложение из памяти не кажется плохим руководством.

что ваша программа делает, что она получает эту ошибку?

Это создает очень много окон или элементов управления? Создает ли он их программно, а не во время разработки? Если да, то вы делаете это в цикле? Это бесконечный цикл? Вы потребляете ошеломляющие лодки памяти каким-то другим способом?

Что происходит, когда вы смотрите памяти, используемой приложением в диспетчере задач? Делает он взлетел на Луну? Или еще лучше, как было предложено выше, используйте process monitor, чтобы погрузиться в детали.

Читайте также: