Я работаю над приложением в WPF, используя Vlc.DotNet. У меня возникла проблема с воспроизведением видео с ужасной частотой кадров на моем ноутбуке.
После некоторых исследований я определил, что проблема связана с дросселированием процессора. Если профиль питания ноутбука находится в режиме BatterySaver, проблема возникает. Если я переключаю его на производительность, все работает нормально. Мне кажется, что в режиме BatterySaver он позволяет процессору дросселировать, и по какой-то причине не корректно увеличивает дроссель, когда это нужно приложению. Могу ли я как-нибудь исправить эту проблему?
Я попытался установить приоритет с помощью приведенного ниже кода, и, похоже, это не имело значения.
System.Diagnostics.Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.High;
Vlc.DotNet обновляет и ImageSource следующим обработанным изображением. У меня есть этот источник, привязанный к изображению в графическом интерфейсе, который его отображает. Я использовал WPF Performance Kit и вижу, что происходит, но не вижу, почему. Как только оно начинает воспроизводиться, то есть обновлять изображение в графическом интерфейсе со скоростью 30 кадров в секунду, частота кадров всего приложения падает примерно до 5 кадров в секунду.