Lazy 延迟加载
问题:最近遇到一个项目遇到一个问题(很久的项目,现阶段主要维护),程序初始化的时候比较慢,最后查原因的时候发现是因为一个类的构造方法里面有些逻辑,
解决办法:希望在使用的时候再进行加载,最后想到了延迟加载(Lazy)
一、由于实际项目不好贴源代码,先简单模拟数据
public class Student { public Student() { this.Name = "DefaultName"; this.Age = 0; Thread.Sleep(2000);//模拟延时操作 Console.WriteLine("Student is init..."); } public string Name { get; set; } public int Age { get; set; } }
二、延迟加载处理
Lazy<Student> student = new Lazy<Student>(); //在这可以输写一部分业务逻辑。。。。。 Console.WriteLine("业务逻辑编写。。。"); Console.WriteLine("student对象是否被创建:"+student.IsValueCreated); student.Value.Name = "lxsh"; Console.WriteLine("student对象是否被创建:"+student.IsValueCreated);
三、运行截图
![](https://img2018.cnblogs.com/blog/1502027/201904/1502027-20190428171032192-1193118755.png)