Dot-Net

Lazy.Force() 和 Lazy.Value 有什麼區別

  • April 30, 2020

Lazy.Force<T>擴展方法的 MSDN 文件中說:

強制執行此值並返回其結果。與價值相同。互斥用於防止其他執行緒也計算該值。

是不是就相當於用LazyThreadSafetyMode創建一個Lazy<T>實例,這樣只有一個執行緒可以初始化該實例?ExecutionAndPublication

謝謝

是的。它們都是相同的,並且都確保該值只計算一次。

該方法存在並且不是函式有點奇怪 - 它不可組合併複製.Value.

我將定義如下內容(如在 F# 編譯器中所見):

module Lazy =
   // Lazy.force : Lazy<'T> -> 'T
   let force (x: Lazy<'T>) = x.Force()

引用自:https://stackoverflow.com/questions/7569310