Ваш коллега должен был использовать полусинхронные вызовы метода вместе с перечислителями только для пересылки. В полусинхронном режиме вызовы методов WMI немедленно возвращаются, а объекты извлекаются в фоновом режиме и возвращаются по требованию после их создания. Кроме того, при использовании полусинхронного режима для извлечения большого количества экземпляров рекомендуется получить перечислители только для пересылки, чтобы повысить производительность. Эти особенности объяснены в этой статье MSDN .
Как указал Урос, чтобы получить перечислитель только для пересылки в полусинхронном режиме, вам нужно использовать экземпляр класса EnumerationOptions
с свойством ReturnImmediately
, установленным на true
, и свойством Rewindable
, установленным на false
, например:
EnumerationOptions opt = new EnumerationOptions();
opt.ReturnImmediately = true;
opt.Rewindable = false;
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query, opt);