2014-02-10 98 views
1

基於MSDN,我們可以使用延遲初始化來推遲創建大型資源密集型對象或執行資源密集型任務,特別是在程序生存期間不會發生這種創建或執行的情況下。.NET 4.0中最懶惰的功能是什麼?

爲了準備延遲初始化,您需要創建一個Lazy實例。您創建的Lazy對象的類型參數指定了您想要初始化的對象的類型。用於創建Lazy對象的構造函數決定了初始化的特性。第一次訪問Lazy.Value屬性時會發生延遲初始化。

懶惰的頂部描述告訴我,我應該使用它來初始化大量的對象和任務。但據我所知,當我需要從數據存儲裝載大量數據時,幾乎發生了大規模問題。

在這個位置上,我不認爲懶惰對我有任何幫助。

因此,懶惰初始化有什麼吸引人的功能?

+2

你似乎已經理解了懶惰是如何使用的,問題是什麼? – Magnus

+0

如果懶惰不適合你的特殊情況,那就不要使用它。如果它很好,那就使用它。 – Dialecticus

回答

3

使用懶惰對象的主要好處是在有一個公平的機會你永遠不會初始化它們的情況下,這裏的節約是顯而易見的。另一種情況是延遲計算成本 - 例如,在UI應用程序中將焦點返回給用戶,然後根據用戶的操作,根據需要進行實際的初始化,只要各個任務的速度足夠快就不會被用戶注意到。後一種情況可能會進一步優化,並使初始化在後臺運行。