嗨,我尝试了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的一部分,我不想监视它。我已经明确要求更新每个扫描周期,只是想知道是否可以更新 –