我有一個使用ManagementObjectSearcher的WMI查詢。WMI ManagementObjectSearcher掛在查詢
通常情況下,這個工作正常,但在一些機器上,它是懸掛/從不返回。我試着在查詢上設置超時,但似乎沒有任何區別。
這是我的代碼:
using (var query = new ManagementObjectSearcher("SELECT IDProcess, PercentProcessorTime, WorkingSet FROM Win32_PerfFormattedData_PerfProc_Process"))
{
try
{
query.Options.Timeout = new TimeSpan(0, 0, 10);
query.Options.ReturnImmediately = false;
Log.Info("Query built");
foreach (ManagementObject obj in query.Get())
{
using (obj)
{
var key = (uint)obj.GetPropertyValue("IDProcess");
Log.Info(key);
processStats[key] = new ulong[] { (ulong)obj.GetPropertyValue("PercentProcessorTime"), (ulong)obj.GetPropertyValue("WorkingSet") };
}
}
}
}
在我的日誌,我看到了「建立查詢」,再沒有什麼,程序無響應。
我試過了,沒有手動超時設置。