WMI内存泄漏解决方案

时间:2012-01-19 07:45:04

标签: c# memory-leaks wmi

我有一个静态方法,它调用WMI管理对象并序列化结果。它工作得很好,但它像筛子一样泄漏记忆。每次运行它大约20k。 (即使所有序列化都关闭了。)

我已经在.Net 2.0,3.0,3.5中进行了测试,内存泄漏始终保持不变。

我做错了吗?或者有没有办法装箱这种方法,以便它完成时泄漏的东西在完成后被抛出。 (比如在儿童过程中装箱)

using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(query))
         {
             try
             {

                 using(ManagementObjectCollection moList = searcher.Get()){
                     foreach (ManagementObject mo in moList)
                     {
                         try
                         {
                             // Do serialization here.  Return object will be a List<GenereicObjectType>

                         }
                         catch (Exception ex)
                         {
                             Debug.Error(ex);
                         }
                         finally
                         {
                             if (mo != null)
                             {
                                 try { 
                                     mo.Dispose(); 

                                 }
                                 catch { }
                             }
                         }
                     }
                 }

             }
             catch (Exception ex)
             {
                 Debug.Error(ex);
             }

         }

0 个答案:

没有答案