08 2020 档案
摘要:我的理解: Dispatcher是线程调度管理器,用在子线程刷新主线程(UI线程)(比如绑定的时候,属性更新的时候),在子线程里面起一个dispatcher,将工作项目调度到 UI 线程,让主线程调度刷新UI的代码。 不管是WinForm应用程序还是WPF应用程序,实际上都是一个进程,一个进程可以包
阅读全文
摘要:解决方案是:首次加载时只显示可见区域的控件,之后使用辅助线程分批加载,将分批加载的线程优先级设置为空闲时进行,这样就不会卡顿。 1 this.Dispatcher.Invoke(new Action(()=>{ 2 //分批加载控件的方法 3 }),System.Windows.Threading.
阅读全文
摘要:Show() 打开一个窗口,并且仅在新打开的窗口关闭后才返回。 当 Window 类实例化时,默认情况下它是不可见的。Show 显示一个窗口并立即返回,而不等待该窗口关闭。因此,打开的窗口不会阻止用户与应用程序中的其他窗口交互。这种类型的窗口称为“无模式”窗口。无模式窗口的常见示例包括属性窗口、工具
阅读全文
摘要:1. 概述 我们创建某一个对象需要很大的消耗,而这个对象在运行过程中又不一定用到,为了避免每次运行都创建该对象,这时候延迟初始化(也叫延迟实例化)就出场了。 延迟初始化出现于.NET 4.0,主要用于提高性能,避免浪费计算,并减少程序内存要求。也可以称为,按需加载。 2. 基本语法 Lazy<T>
阅读全文