首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >win32_processor内存不足

win32_processor内存不足
EN

Stack Overflow用户
提问于 2013-06-24 18:01:24
回答 1查看 1.1K关注 0票数 0

我想用WMI在.NET中获取id处理器,但是当我在ManagementObjectSearcher中使用get()方法时,我得到了一个内存不足的异常……

如果您想查看代码,请参见下面的代码:

代码语言:javascript
复制
   ManagementObjectSearcher searcher = new ManagementObjectSearcher(
                "select * from Win32_Processor");

            foreach (ManagementObject share in searcher.Get())
                foreach (PropertyData PC in share.Properties)
                    if (PC.Name.Equals("ProcessorId"))
                        return (string)PC.Value;

            return null;

这段代码可以在其他计算机上运行,但不能在我的计算机上运行。

我用的是windows7。

问题出在哪里?

我尝试重新启动WMI服务,但没有解决我的问题:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-24 18:23:45

有几个原因可能会导致内存不足异常。

  1. 在WMI中可能的内存泄漏,来源:http://brooke.blogs.sqlsentry.net/2010/02/win32service-memory-leak.html
  2. check你是否有权限,这将解释为什么你的代码在某些计算机上工作,为什么在你的计算机上不工作。
  3. 以管理员身份运行你的代码(对于调试start VS,因为Administrator)
  4. Here是另一个代码片段,也尝试这个代码片段...谁知道

示例:

代码语言:javascript
复制
public static String GetCPUId()
{
    String processorID = "";

    ManagementObjectSearcher searcher = new ManagementObjectSearcher(
        "Select * FROM WIN32_Processor");

    ManagementObjectCollection mObject = searcher.Get();

    foreach (ManagementObject obj in mObject)
    {
        processorID = obj["ProcessorId"].ToString();
    }

    return processorID;
}

来源:WIN32_Processor::Is ProcessorId Unique for all computers

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17272758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档