Итак, у меня есть программа [.NET], которая реализует NotifyIcon, который сохраняется в панели уведомлений в Windows в течение всего времени работы программы. Когда я впервые запускаю программу и некоторое время спустя, NotifyIcon и связанный с ней ContextMenuStrip работают абсолютно волшебно.
Однако после того, как машина некоторое время находилась в состоянии пониженного энергопотребления или просто простаивала в течение нескольких часов, при попытке доступа к контекстному меню отрисовка объекта может занять до 2 секунд.
Нужно ли определить некоторую настойчивость, чтобы меню реагировало быстрее? Включил ли я неправильное событие, запускающее очистку ресурсов?
Изменить
Кажется, у меня есть 3 варианта, чтобы проверить, смогу ли я заставить это работать:
1. Вставить объект SecureString
в объект ContextMenuStrip
; это предполагает, что при наличии SecureString
внутри ContextMenuStrip
весь объект будет обрабатываться одинаково и не будет перекачивать страницы
2. Создайте Timer
, который каким-то образом касается ContextMenuStrip
на интервале, чтобы сохранить его в памяти
3. Измените Process.MinWorkingSet
, когда приложение завершило первоначальный запуск, чтобы попытаться (читай: надеяться), что объект ContextMenuStrip
остается живым, а не что-то еще
Я действительно не поклонник пунктов 2 или 3; 3 особенно. Я собираюсь попробовать пункт 1 и посмотреть, работает ли он.
Спасибо за ответы!