У меня есть приложение UWP, которое считывает живые данные Bluetooth с устройства Bluetooth с низким энергопотреблением (BLE), строит их, используя QuickCharts , и записывает их в файл CSV.
В настоящее время каждый 250 мс срабатывает таймер, который регистрирует данные и обновляет график (эта последняя операция запланирована в потоке пользовательского интерфейса).
У меня была проблема, из-за которой приложение переходило в приостановленное состояние всякий раз, когда оно было свернуто или закрыто другим приложением, поэтому я решил включить ограниченные возможности в приложении maifest и объявил ExtendedExecutionForegroundSession
(как объяснено здесь ). Это решило проблему, и данные регистрировались по таймеру, даже когда приложение свернуто.
Однако это вызвало следующий эффект: всякий раз, когда приложение свернуто (не покрыто другим, но свернуто), использование памяти взрывается и растет со скоростью около 100 МБ / мин. Моя гипотеза состоит в том, что, хотя приложение находится в активном состоянии и задачи UI запланированы, они не могут работать, когда приложение свернуто. Когда я снова максимизирую приложение, использование памяти быстро падает, и график быстро обновляется, пока не догонит. У меня такой вопрос:
- Можно ли запускать запланированные задачи пользовательского интерфейса, когда приложение свернуто?
- Если нет, можно ли определить, когда приложение свернуто по порядку не запускать эти задачи в этом случае? (но ведение журнала, которое теперь работает через расширенный сеанс).
Я благодарен за любую информацию и прошу прощения за неопытность в UWP.