Вопрос

Я создал приложение Windows .net 2.0.Это приложение динамически создает элементы управления формой.Теперь, когда я пытаюсь запустить приложение, оно выдает исключение «Ошибка при создании дескриптора Windows».После этого приложение зависает и ничего не происходит.В первый раз форма отображается правильно.В определенном событии я пытаюсь перезагрузить ту же форму, но в этот раз получаю это исключение.Кто-нибудь знает, как от этого избавиться.Любая помощь была бы очень кстати :)

Это было полезно?

Решение

Недавно я столкнулся с такой проблемой.

Для каждого процесса существует ограничение в 10 000 дескрипторов, которого легко достичь, если вы динамически создаете сложный пользовательский интерфейс.

Чтобы проверить, происходит ли это у вас, воспользуйтесь диспетчером задач — перейдите на вкладку «Процессы», включите столбцы «Объекты USER» и «Объекты GDI».Затем воспроизведите проблему.

В моем случае количество объектов USER достигло ровно 10 000, а затем «бум».

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top