Я делаю запрос для всех пользователей на машине, и когда он запускается, он захватывает 100% ЦП и блокирует систему. Я ждал до 5 минут, и ничего не происходит.
В диспетчере задач wmiprvse.exe использует все ресурсы процессора. Когда я убиваю этот процесс, все возвращается в нормальное состояние.
Вот мой код:
SelectQuery query = new SelectQuery("Win32_UserAccount",
"LocalAccount=1 and Domain='" + GetMachine().DomainName + "'");
using(ManagementObjectSearcher searcher = new ManagementObjectSearcher(query)) {
IList<WindowsUser> users = new List<WindowsUser>();
Console.WriteLine("Getting users...");
foreach (ManagementObject envVar in searcher.Get()) {
Console.WriteLine("Getting " + envVar["Name"].ToString() + "...");
}
}
В консоли я вижу только получение пользователей ... и ничего больше. Кажется, проблема в поисковике. Get ().
Кто-нибудь знает, почему этот запрос занимает 100% ЦП? Благодаря.
РЕДАКТИРОВАТЬ: ОК Я обнаружил, что процесс WMI потребляет только 25% ЦП, но он не освобождается, если я завершаю программу (запрос не завершается). В следующий раз, когда я запускаю экземпляр, процесс идет до 50% ЦП и т. Д., И т. Д., Пока он не достигнет 100%.
Итак, мой новый вопрос: почему процессор не освобождается и как долго должен выполняться запрос, подобный этому?