У меня нет конкретного сценария, но этот вопрос просто приходил мне в голову, когда я думал о сценариях, в которых я мог бы использовать Timer вместо DispatcherTimer.
В сценарии, где мне приходится выполнять вычислительно-интенсивную задачу всякий раз, когда запускается событие таймера, а затем вносить незначительные изменения в пользовательский интерфейс, было бы лучше с точки зрения производительности:
- используйте обычный таймер, а затем используйте диспетчер приложения для
изменить пользовательский интерфейс
- использовать DispatcherTimer (и, возможно, сделать мой вычислительный
интенсивная работа в асинхронном фоновом режиме, если это необходимо).
Я предполагаю, что сохранение потока пользовательского интерфейса как можно дольше улучшит пользовательский опыт. Если это желательно , есть ли какие-нибудь уловки, о которых я должен знать в таком сценарии?
EDIT:
У меня такое ощущение, что мой вопрос недостаточно ясен, поэтому я попытаюсь добавить конкретный, хотя и выдуманный пример.
Допустим, я должен читать большой файл каждые 2 минуты, а когда я закончу, я должен добавить элемент в ListBox. Допустим, чтение / обработка файла занимает 10-15 секунд, в течение которых у меня не работает пользовательский интерфейс. Что было бы лучшим подходом для чего-то подобного?