我没有想到一个特定的场景,但是当我在考虑我可能想要在 DispatcherTimer 上使用 Timer 的场景时,这个问题刚刚闪过我的脑海。
在每当触发计时器事件时我必须执行计算密集型任务,然后对 UI 进行细微修改的场景中,在性能方面是否会更好:
- 使用常规 Timer,然后使用应用程序的 Dispatcher 更改 UI
- 使用 DispatcherTimer(如有必要,可能在一些异步后台工作人员中进行我的计算密集型工作)。
我的猜测是,尽可能长时间地保持 UI 线程畅通会增强用户体验。如果这是可取的,在这种情况下是否有任何我应该注意的问题?
编辑:
我觉得我的问题不够清楚,所以我将尝试添加一个具体的,尽管是虚构的例子。
假设我必须每 2 分钟读取一次大文件,完成后,我必须向 ListBox 添加一个项目。假设读取/处理文件需要 10-15 秒,在此期间我不做任何 UI 工作。对于这样的事情,最好的方法是什么?