小编tom*_*ill的帖子

WMI ManagementObjectSearcher挂起查询

我有一个使用ManagementObjectSearcher的WMI查询.

通常,这样可以正常工作,但在某些机器上,它会挂起/永不返回.我已经尝试在查询上设置超时,但似乎没有任何区别.

这是我的代码:

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") };
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的日志中,我看到"查询已构建",然后什么都没有,程序变得没有响应.

我尝试过使用和不使用手动超时设置.

.net c# wmi

7
推荐指数
1
解决办法
3376
查看次数

标签 统计

.net ×1

c# ×1

wmi ×1