Решение утечки памяти WMI - PullRequest
0 голосов
/ 19 января 2012

У меня есть статический метод, который вызывает объекты управления WMI и сериализует результат.Он работает достаточно хорошо, но он теряет память, как сито.Около 20к каждый раз, когда я запускаю его.(даже с отключенной сериализацией).

Я тестировал в .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);
             }

         }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...