1. 程式人生 > >.net 4.0 中對多執行緒新特性(一)

.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>可以非常優雅的實現一個簡單的單例: