ISearchJob->Release() 卡住
ISearchJob->Release() stucking
我正在使用 wuapi 查找 Windows 更新。我遇到了问题:pJob->Release(); 在某些机器上卡在以下代码中,但通常它工作正常。这种行为的原因可能是什么?
我已尝试将 ISearchJob* 更改为 CComPtr 并删除 pJob->Release();,但问题并没有消失。在这种情况下,程序卡在函数的末尾。
ISearchResult* pWUResult = NULL;
ISearchJob* pJob = NULL;
VARIANT pVar = { 0 };
ISCC completeCB;
hr = pWUSearcher->BeginSearch( bstrCriteria, &completeCB, pVar, &pJob );
if ( SUCCEEDED(hr) )
{
WaitForSingleObject( completeCB._Event, INFINITE );
hr = pWUSearcher->EndSearch( pJob, &pWUResult );
pJob->Release();
}
正如@JonathanPotter 在评论中建议的那样,使用 pJob->CleanUp() 而不是 pJob->Release() 解决了这个问题。
我正在使用 wuapi 查找 Windows 更新。我遇到了问题:pJob->Release(); 在某些机器上卡在以下代码中,但通常它工作正常。这种行为的原因可能是什么?
我已尝试将 ISearchJob* 更改为 CComPtr 并删除 pJob->Release();,但问题并没有消失。在这种情况下,程序卡在函数的末尾。
ISearchResult* pWUResult = NULL;
ISearchJob* pJob = NULL;
VARIANT pVar = { 0 };
ISCC completeCB;
hr = pWUSearcher->BeginSearch( bstrCriteria, &completeCB, pVar, &pJob );
if ( SUCCEEDED(hr) )
{
WaitForSingleObject( completeCB._Event, INFINITE );
hr = pWUSearcher->EndSearch( pJob, &pWUResult );
pJob->Release();
}
正如@JonathanPotter 在评论中建议的那样,使用 pJob->CleanUp() 而不是 pJob->Release() 解决了这个问题。