我有一个用于通过使用WMI控制集成显示器亮度的DLL 我遇到了一个麻烦,有时查询方法需要超过600毫秒才能获得IWbemClassObject。正常情况不到50毫秒。
HRESULT WMIQueryBrightness()
{
HRESULT hr;
BSTR QueryLanguage = SysAllocString(L"WQL");
BSTR QueryTarget = SysAllocString(L"SELECT * FROM WmiMonitorBrightness");
ULONG uReturn = 0;
hr = pSvc->ExecQuery(
QueryLanguage,
QueryTarget,
WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY,
NULL,
&pEnum);
if (FAILED(hr))
{
WMIDestroy();
return hr;
}
hr = pEnum->Next(WBEM_INFINITE, 1, &pClsWmiMonitorBrightness, &uReturn);
if (FAILED(hr))
{
WMIDestroy();
return hr;
}
SysFreeString(QueryLanguage);
SysFreeString(QueryTarget);
return S_OK;
}
我试图澄清哪个函数需要花费太多时间,并发现pEnum-> Next()有时需要超过500毫秒。但是,我不知道如何改善这种情况 你能给我一些解决这个问题的想法吗?
答案 0 :(得分:0)
配置系统。您正在访问多任务系统上的共享资源。