嗨,我嘗試了F#WMI類提供商的代碼示例獲取計數器值看起來像這樣如何連續F#WMI類提供商
type Local = WmiProvider<"localhost">
let data = Local.GetDataContext()
let memory = [for d in data.Win32_PerfFormattedData_PerfOS_Memory -> d.AvailableBytes]
內存在這種情況下是System.Nullable名單。所以問題是如何獲得這個列表的連續更新?目前我的代碼看起來像這樣
let printMemory() =
let rec outerLoop =
let memory = [for d in data.Win32_PerfFormattedData_PerfOS_Memory -> d.AvailableBytes]
let rec loop (values:Nullable<uint64> list) =
Thread.Sleep(1000)
match values with
|[] -> printfn "empty"
outerLoop
|h::t -> printfn "value = %d" h.Value
loop t
loop memory
outerLoop
所以,我必須請求新的列表(記憶)每一次,這是正確的做法? 例如System.Diagnostics的PerformanceCounter計數器實現NextValue,是否有類似WMI類型提供程序的東西?謝謝!
WmiSmoObject是Microsoft.SqlServer.Management的一部分,我不想監視它。我已經明確要求更新每個掃描週期,只是想知道是否可以更新 –