WMI Query занимает слишком много времени для получения требуемых значений времени ожидания и времени отключения дисплея. Это правильный путь? Пожалуйста, помогите мне сократить время. Иногда это занимает около 5-7 минут.
string CIMKey = @"root\cimv2\power";
string Query = "SELECT * FROM Win32_PowerPlan WHERE IsActive
= True";
ManagementObjectSearcher Finder = new
ManagementObjectSearcher(CIMKey, Query);
ManagementObject ActivePlan = Finder.Get().Cast
<ManagementObject>().First();
string PlanID = ((string)ActivePlan.GetPropertyValue
("InstanceId")).Split('\\')[1];
ManagementObject SleepTime = ActivePlan.GetRelated
("Win32_PowerSettingDataIndex").Cast
<ManagementObject>()
.Where(x => (string)x.GetPropertyValue("InstanceId") ==
$@"Microsoft:PowerSettingDataIndex\{PlanID}\AC\
{{29f6c1db-86da-48c5-9fdb-f2b67b1f44da}}"
).First();
uint SleepValue = (uint)SleepTime.GetPropertyValue
("SettingIndexValue");
ManagementObject DisplayTime = ActivePlan.GetRelated
("Win32_PowerSettingDataIndex").Cast
<ManagementObject>()
.Where(x => (string)x.GetPropertyValue("InstanceId") ==
$@"Microsoft:PowerSettingDataIndex\{PlanID}\AC\
{{3c0bc021-c8a8-4e07-a973-6b14cbcb2b7e}}"
).First();
uint SleepValue = (uint)DisplayTime.GetPropertyValue
("SettingIndexValue");