Устранить утечку с помощью встроенного Adobe Reader Control - PullRequest
0 голосов
/ 08 апреля 2019
  • Приложение работает на большом мониторе в производственном цеху.
    • У нас есть определенные PDF-файлы для каждой производимой продукции.
    • Товар меняется в течение дня.

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

Мое последнее решение, похоже, почти готово, за исключением утечки дескриптора в соответствии с диспетчером задач.

Я испробовал множество решений и архитектур. Тот, который наиболее иллюстрирует проблему, выглядит следующим образом

  • Щелкните элемент меню, чтобы запустить форму
  • Форма имеет встроенный элемент управления axacropdflib.
  • Ничего не делать с контролем. За исключением распоряжения на формуЗакрыть
  • Родительское приложение запускает таймер, который запускает форму, а затем закрывает форму.
  • Каждый последующий запуск создает 50-100 новых дескрипторов в соответствии с диспетчером задач.
  • Если я удалю элемент управления, этого не произойдет, если я добавлю этот элемент управления. Также имеется встроенный элемент управления просмотра отчетов сервера SQL, который сам по себе не обнаруживает утечку дескриптора при этой архитектуре.

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

Есть предложения по методам очистки и т. Д., Которые могут это уловить? Уже широко использую GC, если я не делаю это неправильно, похоже, это не дает эффекта.

Просто повторюсь, что только присутствие элемента управления axacropdflib, кажется, вносит свой вклад.

Спасибо, Пит

...