Это необычная проблема, но она может случиться.WMI основан на COM, IWbemClassObject - это интерфейс COM, который получает оболочку RCW.Эти обертки не очищаются до тех пор, пока не завершится поток финализатора.Технически возможно выполнить много запросов WMI, но недостаточно выполнить работу с результатами, чтобы запустить сборщик мусора.
Диагностируйте это с помощью Perfmon.exe, системного монитора.Щелкните правой кнопкой мыши по графику, добавьте счетчики, память .NET CLR и добавьте счетчик # Gen 0 Collections.Выберите вашу программу из нижнего списка.Наблюдайте за счетчиком во время работы вашей программы.У вас возникнет эта проблема, если она не заработает.
Если это так, просмотрите ваш код и убедитесь, что все еще имеет смысл запускать так много запросов, но никогда или редко использовать результаты.Обходной путь - подсчитать их, и, скажем, каждый раз 100 000 раз вызывать GC.Collect () и GC.WaitForPendingFinalizers ().