.net 4.0 中对多线程新特性(一)

      在.net 40中对多线程的处理增加了很多新的类以方便多线程环境下的编程实现,首先需要了解的是两个非常有用的类Lazy<T>和ThreadLazy<T>,通过这两个类我们可以很方便实现一个单例模式而不用考虑太多的线程安全的问题。

      Lazy<T>:类简化了执行对象的延迟初始化和实例化的工作。通过以延迟方式实例化对象,可避免在根本不需要的情况下必须创建所有的对象,或者可以将对象的初始化延迟到第一次访问它们的时候.例如:

  

    

 程序输出如下:

 

可以看到__current.Value在不同的线程下面的值始终为第一个线程的ID,需要注意的是__current.Value属性一旦被调用就会回调构造函数中传入的Fun,如果调用失败__current也不会再次调用Fun,其__current.IsValueCreated始终为真,__current.Value是不能够被修改的。通过Lazy<T>可以非常优雅的实现一个简单的单例:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值