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