Dot-Net
Lazy.Force() 和 Lazy.Value 有什麼區別
在
Lazy.Force<T>擴展方法的 MSDN 文件中說:強制執行此值並返回其結果。與價值相同。互斥用於防止其他執行緒也計算該值。
是不是就相當於用LazyThreadSafetyMode創建一個
Lazy<T>實例,這樣只有一個執行緒可以初始化該實例?ExecutionAndPublication謝謝
是的。它們都是相同的,並且都確保該值只計算一次。
該方法存在並且不是函式有點奇怪 - 它不可組合併複製
.Value.我將定義如下內容(如在 F# 編譯器中所見):
module Lazy = // Lazy.force : Lazy<'T> -> 'T let force (x: Lazy<'T>) = x.Force()