懒惰 ?]的缺点

问题描述 投票:48回答:7

我最近开始在整个应用程序中使用Lazy,我想知道在使用Lazy<T>时是否需要考虑任何明显的负面影响?

[我正尝试酌情利用Lazy<T>,主要是为了减少已加载但不活动的插件的内存占用。

我最近开始在整个应用程序中使用Lazy,我想知道在使用Lazy时是否需要考虑任何明显的负面影响?我正在尝试...

c# mef
7个回答
19
投票

我将在评论中扩大一点,内容为:


9
投票
我认为,您应该总是有理由选择Lazy。有几种选择取决于使用情况,并且在某些情况下肯定适合使用此结构。但是不要仅仅因为它很酷就使用它。

7
投票
这里不是消极的一面,但是对于懒惰的人来说是个陷阱:)。

5
投票
我之所以开始使用Lazy<T>,主要是因为它具有并发功能,可从数据库中加载资源。因此,我摆脱了锁定对象和可争论的锁定模式。在我的情况下,感谢@Reed Copsey和他的ConcurrentDictionary

4
投票
[与任何事物一样,Lazy<T>可以用于善恶,因此有一个缺点:如果使用不当,会导致混乱和沮丧。但是,懒惰的初始化模式已经存在了很多年,现在.NET BCL具有实现,开发人员无需再次发明轮子。而且,MEF loves Lazy

2
投票
您对

“贯穿我的整个申请”


2
投票
懒惰用于保留资源,而实际上并不需要。这种模式非常好,但是实现可能没有用。
© www.soinside.com 2019 - 2024. All rights reserved.