大数据量 与 UI交互时的处理 总结与心得
【以下均在主线程中操作时】
1、UI直接操作,数据量较大时,直接使用UI会非常慢
2、数据驱动操作,数据量较大时,数据与UI的交互效率相比“1”提升明显
总结:但以上这两种操作 都会“较长时间”占用主线程,导致UI假死现象
【解决办法,以下两点并用】
1、异步,使用子线程处理耗时业务逻辑,避免因主线程过忙而导致UI假死现象
2、数据驱动,第一:可以提升数据与UI的交互效率(本质上交给WPF引擎去处理了);第二:没有跨线程问题。
例如:数据ObservableCollection.add(item) 效率远远高于 UI控件DataGrid.Items.add(item)
总结:异步的特点是,速度可能比同步还要慢,但主线程不假死;而针对慢的缺点——>我们可以采取“主线程等待进度条”的方式来缓解用户等待时间较长的压力